{"name":"io.branchly/branchly","slug":"branchly","title":"branchly","description":"Connect your agent to branchly: manage content, prompts, actions, learn from analytics and insights","url":"https://mcp.market/server/branchly","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T21:21:07.450Z","last_ok_at":"2026-09-20T21:21:07.450Z","latency_ms":1923},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://branchly.io","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://api.branchly.io/mcp","headers":[{"description":"branchly API key for authentication","isRequired":true,"isSecret":true,"name":"x-api-key"}]}],"packages":[],"tools":[{"name":"create_data_source","description":"Create a new data source for the authenticated application. The 'settings' object must match the given 'type'. Returns the created data source. Creating a data source does not sync any content — use run_data_source to start a sync.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"description":"Human-readable display name of the data source (e.g. 'Company Website').","type":"string"},"type":{"enum":["website_crawler","file_upload","node_editor","default_node","openAPI","helpspace","custom_website_crawler","webhook","wordpress"],"type":"string","description":"Must match the 'type' discriminator of the 'settings' object when both are provided."},"settings":{"description":"Type-specific config. Pass as an inline JSON object — do NOT serialize to a string. Must include a 'type' discriminator field: 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', or 'webhook'.","oneOf":[{"anyOf":[{"properties":{"type":{"const":"website_crawler","default":"website_crawler","type":"string"},"crawler_type":{"enum":["playwright:firefox","playwright:adaptive","cheerio"],"type":"string","default":"cheerio"},"actor":{"enum":["apify/website-content-crawler"],"type":"string","default":"apify/website-content-crawler"},"urls":{"properties":{"start_urls":{"items":{"format":"uri","minLength":1,"type":"string"},"type":"array"}},"required":["start_urls"],"type":"object"},"max_pages_per_crawl":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":30},"max_crawl_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":20},"include_url_globs":{"items":{"type":"string"},"type":"array"},"exclude_url_globs":{"items":{"type":"string"},"type":"array"},"ignore_errors":{"default":false,"description":"Ignore any page-specific errors (Lang-Tab not available, status code etc.) and continue crawling.","type":"boolean"},"ignore_canonical_url":{"default":false,"description":"Ignore canonical URLs when crawling if they are incorrectly defined or the crawler should consider Query Parameters as well.","type":"boolean"},"remove_html_elements":{"default":"footer, div.footer, #footer, header, div.pageheader, #pageheader, script, style, noscript, svg, [role=\"alert\"], [role=\"banner\"], [role=\"dialog\"], [role=\"alertdialog\"], [role=\"region\"][aria-label*=\"skip\" i], [aria-modal=\"true\"], #branchly-chat-widget-container, #branchly-embed-container, #branchly-chat-embed-container, #branchly-search-interface-container","description":"List of CSS selectors to remove from the HTML content. List should be separated by commas.","type":"string"},"filters":{"anyOf":[{"properties":{"criteria":{"items":{"properties":{"field":{"enum":["published_time","modified_time"],"type":"string"},"condition":{"properties":{"type":{"enum":["max_age_days","contains"],"type":"string"},"value":{"anyOf":[{"type":"integer"},{"type":"string"}]}},"required":["type","value"],"type":"object"}},"required":["field","condition"],"type":"object"},"type":"array"}},"type":"object"},{"type":"null"}],"default":null},"title_suffix_to_remove":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Remove suffix or prefix from page titles."},"custom_tags":{"description":"Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.","items":{"type":"string"},"type":"array"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable","description":"Policy for handling unavailable Sources/URLs during data source run."}},"required":["urls"],"type":"object"},{"properties":{"type":{"const":"file_upload","default":"file_upload","type":"string"},"files":{"items":{"properties":{"file_name":{"type":"string"},"url":{"format":"uri","minLength":1,"type":"string"},"is_external":{"default":false,"type":"boolean"}},"required":["file_name","url"],"type":"object"},"type":"array"}},"required":["files"],"type":"object"},{"properties":{"type":{"const":"openAPI","default":"openAPI","type":"string"},"openapi_spec":{"type":"string"},"operation_id":{"type":"string"},"data_template_mapping":{"properties":{"text":{"type":"string"},"title":{"type":"string"},"source":{"type":"string"},"page_metadata":{"anyOf":[{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"images":{"anyOf":[{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"article":{"anyOf":[{"properties":{"published_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"modified_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"custom_metadata":{"anyOf":[{"properties":{"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"score_boost":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"required":["text","title","source"],"type":"object"},"extra_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"number"},{"type":"integer"},{"type":"null"}]},"type":"object"},{"type":"null"}],"default":null},"response_content_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable","description":"Policy for handling unavailable Sources/URLs during data source run."}},"required":["openapi_spec","operation_id","data_template_mapping"],"type":"object"},{"properties":{"type":{"const":"helpspace","default":"helpspace","type":"string"},"client_id":{"type":"string"},"api_token":{"type":"string"},"site_id":{"type":"integer"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable","description":"Policy for handling unavailable Sources/URLs during data source run."}},"required":["client_id","api_token","site_id"],"type":"object"},{"properties":{"type":{"const":"custom_website_crawler","default":"custom_website_crawler","type":"string"},"crawler_type":{"enum":["playwright:firefox","playwright:adaptive","cheerio"],"type":"string","default":"cheerio"},"actor":{"enum":["apify/website-content-crawler"],"type":"string","default":"apify/website-content-crawler"},"urls":{"properties":{"start_urls":{"items":{"format":"uri","minLength":1,"type":"string"},"type":"array"}},"required":["start_urls"],"type":"object"},"ignore_errors":{"default":false,"type":"boolean"},"main_content_marker":{"properties":{"type":{"const":"comments","default":"comments","type":"string"},"selector_filter":{"type":"string"},"start_marker":{"type":"string"},"end_marker":{"type":"string"}},"required":["selector_filter","start_marker","end_marker"],"type":"object"},"title_suffix_to_remove":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Remove suffix or prefix from page titles."},"graph_builder":{"properties":{"connect_start_urls_to_entry":{"default":true,"description":"Connect start URLs to entry node","type":"boolean"},"nodes_wo_out_edges_to_contact":{"default":false,"description":"Nodes without outgoing edges to contact nodes. Uses contact_node_ids if available, otherwise all contact nodes","type":"boolean"},"nodes_wo_out_edges_to_tool":{"default":false,"description":"Nodes without outgoing edges to tool nodes. Uses tool_node_ids if available, otherwise all tool nodes","type":"boolean"},"nodes_wo_edges_to_root":{"default":false,"description":"Nodes without incoming/outgoing edges to the root node/start url. Prevents orphan nodes","type":"boolean"},"contact_node_ids":{"anyOf":[{"items":{"format":"uuid","type":"string"},"type":"array"},{"type":"null"}],"default":null},"tool_node_ids":{"anyOf":[{"items":{"format":"uuid","type":"string"},"type":"array"},{"type":"null"}],"default":null},"navigation_builder":{"oneOf":[{"properties":{"type":{"const":"breadcrumbs","default":"breadcrumbs","type":"string"},"breadcrumb_selector":{"type":"string"}},"required":["breadcrumb_selector","type"],"type":"object"}]}},"required":["navigation_builder"],"type":"object"},"include_url_globs":{"items":{"type":"string"},"type":"array"},"exclude_url_globs":{"items":{"type":"string"},"type":"array"},"custom_tags":{"description":"Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.","items":{"type":"string"},"type":"array"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"ignore","description":"Policy for handling unavailable Sources/URLs during data source run."},"fetch_image_captions":{"default":false,"description":"Fetch and generate captions for images found during crawling.","type":"boolean"}},"required":["urls","main_content_marker","graph_builder"],"type":"object"},{"description":"Settings for webhook data source.","properties":{"type":{"const":"webhook","default":"webhook","type":"string"},"data_template_mapping":{"anyOf":[{"properties":{"text":{"type":"string"},"title":{"type":"string"},"source":{"type":"string"},"page_metadata":{"anyOf":[{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"images":{"anyOf":[{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"article":{"anyOf":[{"properties":{"published_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"modified_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"custom_metadata":{"anyOf":[{"properties":{"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"score_boost":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"required":["text","title","source"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional template mapping for custom webhook payloads. If provided, incoming data will be mapped to internal format."}},"type":"object"},{"properties":{"type":{"const":"wordpress","default":"wordpress","type":"string"},"api_path":{"default":"/wp-json/wp/v2","type":"string"},"verify_ssl":{"default":true,"type":"boolean"},"timeout":{"default":30,"maximum":120,"minimum":5,"type":"integer"},"post_types":{"items":{"type":"string"},"minItems":1,"type":"array"},"post_status":{"items":{"type":"string"},"minItems":1,"type":"array"},"excluded_categories":{"items":{"type":"integer"},"type":"array"},"locale_detection":{"enum":["static","path_prefix","subdomain","query_param","wpml"],"type":"string","default":"static","description":"Strategy for inferring the locale from a post's URL. 'static' uses default_locale for all posts. 'path_prefix' reads the first path segment (domain.com/en/page). 'subdomain' reads the subdomain (en.domain.com). 'query_param' reads the ?lang= query parameter. 'wpml' queries the WPML REST API per language (?lang=xx) and tags each post with the queried language code."},"default_site_locale":{"default":"de","description":"Locale assigned to all posts in 'static' mode, or used as fallback in detection modes.","type":"string"},"locale_mapping":{"additionalProperties":{"type":"string"},"description":"Map detected URL language codes to app locales. e.g. {'en': 'en', 'de': 'de', 'fr_FR': 'fr'}. Applied after locale_detection; unmatched codes are used as-is. Falls back to default_locale when no locale is detected.Locale mapping is used to filter posts in 'wpml' language detection mode.","type":"object"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable"},"filters":{"anyOf":[{"properties":{"criteria":{"items":{"properties":{"field":{"enum":["published_time","modified_time"],"type":"string"},"condition":{"properties":{"type":{"enum":["max_age_days","contains"],"type":"string"},"value":{"anyOf":[{"type":"integer"},{"type":"string"}]}},"required":["type","value"],"type":"object"}},"required":["field","condition"],"type":"object"},"type":"array"}},"type":"object"},{"type":"null"}],"default":null}},"type":"object"}],"required":["type"]}]},"schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Cron expression (e.g. '0 3 * * *') or null to disable scheduled re-sync."},"integration_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"description":"Integration UUID for connected data sources. Required for WordPress data sources."}},"required":["name","type","settings"],"additionalProperties":false}},{"name":"create_node","description":"Create a new content node in the knowledge base. Label defaults to 'content'.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"additionalProperties":{"type":"string"},"description":"Locale-keyed title map, e.g. {\"de\": \"Titel\", \"en\": \"Title\"}.","type":"object"},"text":{"additionalProperties":{"type":"string"},"description":"Locale-keyed body content (HTML) map, e.g. {\"de\": \"<p>Inhalt</p>\", \"en\": \"<p>Content</p>\"}.","type":"object"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Source URL for the node content."},"label":{"enum":["entry","content","contact","tool","fallback","integration","style","chat_navigator_style","search_style","search_result","navigator","feedback"],"type":"string","default":"content"},"custom_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null},"score_boost":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Boost value for search ranking. Higher is better. Use null for no boost."}},"required":["title","text"],"additionalProperties":false}},{"name":"create_prompt","description":"Create a new prompt version for the authenticated application. The new prompt is automatically set as active and the previously active prompt of the same type and subtype is deactivated. Use this whenever you want to change prompt text.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt":{"type":"string"},"type":{"description":"Types of prompts in the system.","enum":["chat","search_answering","suggested_questions","chat_evaluation"],"type":"string"},"subtype":{"anyOf":[{"description":"Subtypes for prompts - used for routing vs output instructions.","enum":["routing_instructions","output_instructions"],"type":"string"},{"type":"null"}],"default":null,"description":"'routing_instructions' or 'output_instructions'. Returns all when omitted."},"interface_type":{"anyOf":[{"description":"Coarser grouping of EmbedType for prompt scoping.\n\nFollows the same pattern as StyleType in the interface_styles domain.\nEach value maps to one or more EmbedType values via ``embed_type_to_interface_type``.","enum":["chat","navigator","search","api","form"],"type":"string"},{"type":"null"}],"default":null,"description":"Interface scope of the prompt: 'chat', 'navigator', 'search', or 'api'. Required for 'chat' and 'search_answering' prompt types; omit for 'suggested_questions' and 'chat_evaluation'."}},"required":["prompt","type"],"additionalProperties":false}},{"name":"create_tool","description":"Create a new tool (AI action) for the authenticated application. Tool names must be unique per application, snake_case, max 64 chars. 'tool_config' and 'function_arguments' must match the given 'tool_type'. Returns the created tool.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"description":"snake_case tool name, max 64 characters. Used as the function name when the LLM calls the tool.","type":"string"},"description":{"description":"Natural-language description of what the tool does and when the LLM should call it.","type":"string"},"tool_type":{"enum":["knowledge_base","openAPI","node_lookup","send_email","form","contact_information","web_search","web_page_reader","weather","venus_knowledge_graph","regiondo","mcp_server","api","buttons","google_maps_link","google_maps_embed","calendly"],"type":"string","description":"Type of the tool: 'knowledge_base', 'openAPI', 'node_lookup', 'send_email', 'form', 'contact_information', 'web_search', 'web_page_reader', 'weather', 'venus_knowledge_graph', 'regiondo', 'mcp_server', 'api', 'buttons', 'google_maps_link', 'google_maps_embed', or 'calendly'."},"tool_config":{"anyOf":[{"properties":{"properties":{"type":"array","items":{"oneOf":[{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"string","default":"string","type":"string"},"format":{"default":"text","description":"HTML input type","enum":["text","email","tel"],"type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"text_area","default":"text_area","type":"string"},"format":{"const":"text","default":"text","description":"HTML input type","type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"number","default":"number","type":"string"},"minimum":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"select","default":"select","type":"string"},"enum":{"items":{"type":"string"},"type":"array"}},"required":["name","enum","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"date","default":"date","type":"string"},"format":{"const":"date","default":"date","type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"time","default":"time","type":"string"},"format":{"const":"time","default":"time","type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"checkbox","default":"checkbox","type":"string"}},"required":["name","field_type"],"type":"object"}]}}},"required":["properties"],"type":"object"},{"description":"Configuration for the API tool sent to the LLM as a function.\n\nContains the parameters that the AI collects from users, which are then\nsubstituted into the URL, headers, and body using {{parameter_name}} notation.","properties":{"object":{"const":"api_tool_config","default":"api_tool_config","type":"string"},"parameters":{"description":"List of parameters to collect from the user for use in the API request.","items":{"description":"Parameter collected from the user for use in API requests.\n\nParameters can be used as placeholders in URL, headers, or body using {{parameter_name}} notation.","properties":{"name":{"description":"Name of the parameter. Used as a variable placeholder in URL, headers, or body with {{name}} notation.","type":"string"},"type":{"description":"Type of the parameter.","enum":["text","number","boolean"],"type":"string","default":"text"},"description":{"description":"Description of the parameter to help the AI understand what data to collect from the user.","type":"string"},"required":{"default":true,"description":"Whether this parameter is required for the API call.","type":"boolean"}},"required":["name","description"],"type":"object"},"type":"array"}},"type":"object"},{"type":"null"}],"default":null,"description":"Function schema sent to the LLM. Pass as an inline JSON object — do NOT serialize to a string. Use 'FormAPISchema' for form tools or 'APIToolConfig' for API-calling tools. Pass null to clear."},"function_arguments":{"anyOf":[{"properties":{"object":{"const":"knowledge_base_tool_arguments","default":"knowledge_base_tool_arguments","type":"string"},"retrieval_method":{"enum":["default","parent_context"],"type":"string","default":"default"},"rerank":{"default":false,"type":"boolean"},"formatter":{"enum":["chunks_with_source","numbered_chunks_with_source","grouped_chunks","grouped_chunks_with_custom_metadata","grouped_chunks_with_page_metadata"],"type":"string","default":"chunks_with_source"},"document_limit_rerank":{"default":25,"type":"integer"},"document_limit_default":{"default":15,"type":"integer"},"node_ids_filter":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null},"node_labels_filter":{"anyOf":[{"items":{"enum":["entry","content","contact","tool","fallback","integration","style","chat_navigator_style","search_style","search_result","navigator","feedback"],"type":"string"},"type":"array"},{"type":"null"}],"default":null},"sources_filter":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null},"data_source_types_filter":{"anyOf":[{"items":{"enum":["website_crawler","file_upload","node_editor","default_node","openAPI","helpspace","custom_website_crawler","webhook","wordpress"],"type":"string"},"type":"array"},{"type":"null"}],"default":null},"data_source_ids_filter":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null}},"type":"object"},{"properties":{"object":{"const":"node_lookup_tool_arguments","default":"node_lookup_tool_arguments","type":"string"},"node_ids":{"description":"List of node IDs to look up in the graph.","items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"object":{"const":"send_email_tool_arguments","default":"send_email_tool_arguments","type":"string"},"sender_email":{"format":"email","type":"string"}},"required":["sender_email"],"type":"object"},{"properties":{"object":{"const":"web_search_tool_arguments","default":"web_search_tool_arguments","type":"string"},"limit":{"default":5,"type":"integer"}},"type":"object"},{"properties":{"object":{"const":"web_page_reader_tool_arguments","default":"web_page_reader_tool_arguments","type":"string"},"url":{"type":"string"},"target_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only returns elements from CSS selector."},"wait_for_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Wait for a specific element to appear before returning. For dynamic content."}},"required":["url"],"type":"object"},{"properties":{"object":{"const":"form_tool_arguments","default":"form_tool_arguments","type":"string"},"form_title":{"additionalProperties":{"type":"string"},"type":"object"},"submit_message":{"additionalProperties":{"type":"string"},"type":"object"},"submit_button_text":{"additionalProperties":{"type":"string"},"type":"object"},"show_data_privacy_text":{"default":false,"type":"boolean"},"data_privacy_text":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Optional data privacy text. If provided, a checkbox should be displayed to the user."},"notification_email":{"anyOf":[{"format":"email","type":"string"},{"items":{"format":"email","type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Used for email forwarding of form submissions. If not provided, no email will be forwarded"}},"required":["form_title","submit_message","submit_button_text"],"type":"object"},{"properties":{"object":{"const":"venus_knowledge_graph_tool_arguments","default":"venus_knowledge_graph_tool_arguments","type":"string"},"projects":{"type":"string"},"channels":{"type":"string"},"entity_type":{"const":"Event","default":"Event","type":"string"},"domain":{"type":"string"},"event":{"anyOf":[{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"}},"required":["event_type","mapping"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional frontend event mapping."}},"required":["projects","channels","domain"],"type":"object"},{"properties":{"object":{"const":"regiondo_tool_arguments","default":"regiondo_tool_arguments","type":"string"},"secret_key":{"type":"string"},"public_key":{"type":"string"},"event":{"anyOf":[{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"}},"required":["event_type","mapping"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional frontend event mapping."}},"required":["secret_key","public_key"],"type":"object"},{"properties":{"object":{"const":"mcp_server_tool_arguments","default":"mcp_server_tool_arguments","type":"string"},"mcp_url":{"format":"uri","minLength":1,"type":"string"},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Optional headers to be sent with the request to the MCP server."},"image_url":{"anyOf":[{"format":"uri","minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional image URL to be shown in the Dashboard. Only for frontend display."},"events":{"description":"List of frontend events to be triggered by this tool","items":{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"},"mcp_tool_names":{"description":"List of tool names this frontend event should be mapped to. If empty, map to all tools of the MCP server.","items":{"type":"string"},"type":"array"},"mcp_tool_entities":{"anyOf":[{"properties":{"key":{"description":"The key to use to identify the entity from the MCP server response","type":"string"},"values":{"description":"The specific entities (values) that should be mapped to the frontend event","items":{"type":"string"},"type":"array"}},"required":["key"],"type":"object"},{"type":"null"}],"default":null,"description":"Mapping to distinguish entities from the MCP server response. If None, map to all entities"}},"required":["event_type","mapping"],"type":"object"},"type":"array"}},"required":["mcp_url"],"type":"object"},{"description":"Arguments for the API tool that define how to make HTTP requests.\n\nContains the static configuration for executing API requests.\nUse {{parameter_name}} mustache notation in url, query_params, headers, and body\nto reference parameters defined in tool_config.","properties":{"object":{"const":"api_tool_arguments","default":"api_tool_arguments","type":"string"},"method":{"description":"HTTP method for the API request.","enum":["GET","POST","PUT","PATCH","DELETE"],"type":"string"},"url":{"description":"URL of the API endpoint. Can include parameter placeholders using mustache notation like {{parameter_name}}.","type":"string"},"query_params":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Query parameters for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}."},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"HTTP headers for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}."},"body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"description":"Request body. Values can include parameter placeholders using mustache notation like {{parameter_name}}."},"body_content_type":{"description":"Content type of the request body.","enum":["application/json","application/x-www-form-urlencoded"],"type":"string","default":"application/json"},"timeout":{"default":5,"description":"Request timeout in seconds.","maximum":30,"minimum":1,"type":"integer"},"response_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional dot notation to extract specific data from the API response."},"event":{"anyOf":[{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"}},"required":["event_type","mapping"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional frontend event mapping."}},"required":["method","url"],"type":"object"},{"description":"Arguments for the Buttons tool.\n\nThis tool allows AI to send buttons as a frontend event to users.\nNo inputs are required from the AI when executing this tool.\nMaximum 3 buttons can be sent.","properties":{"object":{"const":"buttons_tool_arguments","default":"buttons_tool_arguments","type":"string"},"buttons":{"description":"List of buttons to display. Maximum 10 buttons.","items":{"description":"Individual button in the buttons tool.\n\n- link_button: Opens URL in new tab (if external) or navigates (like follow-up actions)\n- button: Uses text as input for sending new request","properties":{"type":{"description":"Type of the button","enum":["link_button","button"],"type":"string"},"text":{"description":"Button text to display. Should be short and descriptive.","maxLength":50,"type":"string"},"url":{"anyOf":[{"format":"uri","minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"URL for link_button type. Required for link_button, not used for button type. Allow mailto: and tel: links as well."}},"required":["type","text"],"type":"object"},"maxItems":10,"minItems":1,"type":"array"}},"required":["buttons"],"type":"object"},{"properties":{"object":{"const":"google_maps_link_tool_arguments","default":"google_maps_link_tool_arguments","type":"string"},"icon_url":{"anyOf":[{"format":"uri","minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional URL of an icon to display inside the link button."},"default_travelmode":{"anyOf":[{"enum":["driving","walking","bicycling","transit"],"type":"string"},{"type":"null"}],"default":null,"description":"Default travel mode used when the AI does not specify one."}},"type":"object"},{"properties":{"object":{"const":"google_maps_embed_tool_arguments","default":"google_maps_embed_tool_arguments","type":"string"},"default_mode":{"anyOf":[{"enum":["driving","walking","bicycling","transit","flying"],"type":"string"},{"type":"null"}],"default":null,"description":"Default travel mode used when the AI does not specify one."}},"type":"object"},{"properties":{"object":{"const":"calendly_tool_arguments","default":"calendly_tool_arguments","type":"string"},"integration_id":{"description":"ID of the connected Calendly integration to use for scheduling.","format":"uuid","type":"string"}},"required":["integration_id"],"type":"object"},{"type":"null"}],"default":null,"description":"Fixed runtime arguments NOT collected from the LLM (e.g. recipient email, rerank flag, knowledge-base ID). Pass as an inline JSON object — do NOT serialize to a string. Must include an 'object' discriminator field matching the tool type."},"agents":{"anyOf":[{"items":{"enum":["chat_routing","chat_output","search_answer","form_answer","form_routing","follow_up_actions","suggested_questions","web_mcp"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Optional list of agent types that may use this tool: 'chat_routing', 'chat_output', 'search_answer', 'form_answer', 'form_routing', 'follow_up_actions', 'suggested_questions'."}},"required":["name","description","tool_type"],"additionalProperties":false}},{"name":"get_active_sessions_by_embed","description":"Time series of active sessions broken down by embed type (chat, chat_widget, navigator, search_interface, voice, api). Use this to understand which interfaces are driving usage.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}},"additionalProperties":false}},{"name":"get_active_sessions_over_time","description":"Time series of active sessions, bucketed by day or week (auto-chosen from the time window). Each row breaks the total down by interaction type (chat / search / navigation / form_submission / voice). Gaps are zero-filled, so the series is safe to plot directly. Use this to spot spikes, dips, or trends.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"embed_types":{"anyOf":[{"items":{"enum":["chat","search","chat_widget","search_interface","voice","api","form"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict to sessions initiated through these embed type(s). Omit to include all embeds."}},"additionalProperties":false}},{"name":"get_answer_type_distribution","description":"Distribution of chat answer types (e.g. 'answered', 'no_answer', 'tool_call', 'human_handoff'), ranked by occurrence count. Use this to monitor answer quality: a high 'no_answer' share signals content gaps; a high 'human_handoff' share signals where the bot is escalating.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}},"additionalProperties":false}},{"name":"get_application","description":"Return the full configuration of the authenticated application.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_sentiment_distribution","description":"Sentiment distribution of chat answers as counts of 'positive', 'negative', and 'neutral'. Optionally restrict to specific answer types. Use this as a quick quality signal — a rising 'negative' share usually warrants drilling into individual sessions via read_sessions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"answer_types":{"anyOf":[{"items":{"enum":["complete","no_knowledge","outside_scope","small_talk","follow_up_question"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict to chat requests whose final answer matched one of these types. Omit to include all answer types."}},"additionalProperties":false}},{"name":"get_top_cited_sources","description":"Knowledge-base nodes most frequently cited in chat answers, ranked by citation count. Each row carries the node UUID (vertex_id), its title, optional source URL, and citation_count. Use this to understand which knowledge is actually load-bearing; pair with read_node(vertex_id) to inspect cited content.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"embed_types":{"anyOf":[{"items":{"enum":["chat","search","chat_widget","search_interface","voice","api","form"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict to sessions initiated through these embed type(s). Omit to include all embeds."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_clicked_urls","description":"URLs users actually clicked from inside the embed (search results, citation links, follow-ups, etc.), ranked by click count. Optionally filter by click event type. Use this to see what users find useful enough to click through to.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"event_types":{"anyOf":[{"items":{"enum":["search_result","link","contact","tool","follow_up_navigation","follow_up_question","custom","analytics"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict to specific click-event type(s): 'search_result', 'link', 'contact', 'tool', 'follow_up_navigation', 'follow_up_question'. Omit to include all."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_devices","description":"Top device categories (e.g. 'desktop', 'mobile', 'tablet') across all request types, ranked by occurrence count. Use this to understand the device mix of real users interacting with the embed.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_geographies","description":"Top (country, region) combinations across all request types, ranked by occurrence count. Country is an ISO country code; region may be null when unavailable. Use this to understand geographic distribution of users.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_interaction_sources","description":"Page URLs the user was ON when they interacted with the embed (chat, search, navigation, form submission), ranked by occurrence count. Differs from get_top_clicked_urls: this is the ORIGIN page, not the destination. Use this to find which pages of the host site drive the most embed engagement.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_languages","description":"Top detected natural languages of user CHAT questions, ranked by occurrence count. Differs from get_top_locales: locale reflects the embed/browser setting, language is detected from the actual query text. Use both to spot mismatches (e.g. German-speaking users hitting an English-only embed).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_locales","description":"Top locales (BCP-47 style, e.g. 'de_DE', 'en_US') across chat, search, and navigation requests, ranked by occurrence count. Use this to understand which languages/regions are being served and where content gaps may exist.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_searches","description":"Top user search queries (normalized: lowercased, trimmed), ranked by occurrence count. Use this to discover dominant user intents and content gaps; pair with read_sessions(search_query=...) to inspect specific sessions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_top_tags","description":"Top tags attached to chat answers (auto-derived classifications), ranked by occurrence count. Optionally restrict to specific answer types. Use this for a quick topical breakdown of chat traffic.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."},"answer_types":{"anyOf":[{"items":{"enum":["complete","no_knowledge","outside_scope","small_talk","follow_up_question"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Restrict to chat requests whose final answer matched one of these types. Omit to include all answer types."},"limit":{"default":15,"description":"Maximum number of rows to return, ordered by count descending.","exclusiveMinimum":0,"type":"integer"}},"additionalProperties":false}},{"name":"get_trending_classifications","description":"Time series of trending classifications (topics OR intents inferred from chat content), one series per classification id. Each series item carries a period timestamp and count. Use this to see how topical or intent demand shifts over time. Choose 'topic' for subject-matter trends, 'intent' for user-goal trends.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"classification_type":{"description":"Which classification dimension to trend: 'topic' or 'intent'. Topics = subject matter inferred from chat content; intents = user goal inferred from chat content.","enum":["topic","intent"],"type":"string"},"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"}],"default":"last_30_days","description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}},"required":["classification_type"],"additionalProperties":false}},{"name":"list_data_sources","description":"List data sources for the authenticated application. Optionally filter by data source type(s). Returns paginated results ordered by last update.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"page":{"default":1,"exclusiveMinimum":0,"type":"integer"},"limit":{"default":50,"exclusiveMinimum":0,"type":"integer"},"data_source_types":{"anyOf":[{"items":{"enum":["website_crawler","file_upload","node_editor","default_node","openAPI","helpspace","custom_website_crawler","webhook","wordpress"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by data source type(s): 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', 'webhook'. Returns all when omitted."}},"additionalProperties":false}},{"name":"list_nodes","description":"List nodes in the knowledge base. Optionally filter by vertex label(s), data source type(s), or data source IDs. Optionally sort by updated_at ('asc' or 'desc'). Provide 'query' and 'locale' to perform a full-text search across node content (requires both parameters). Returns paginated results with total count.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"page":{"default":1,"exclusiveMinimum":0,"type":"integer"},"limit":{"default":10,"exclusiveMinimum":0,"maximum":10,"type":"integer"},"labels":{"anyOf":[{"items":{"enum":["entry","content","contact","tool","fallback","integration","style","chat_navigator_style","search_style","search_result","navigator","feedback"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by vertex label(s) (e.g. 'content'). Returns all when omitted."},"data_source_types":{"anyOf":[{"items":{"enum":["website_crawler","file_upload","node_editor","default_node","openAPI","helpspace","custom_website_crawler","webhook","wordpress"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by data source type(s): 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', 'webhook'. Returns all when omitted."},"data_source_ids":{"anyOf":[{"items":{"format":"uuid","type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by data source UUID(s). Returns all when omitted."},"sort_parameters":{"anyOf":[{"items":{"properties":{"field":{"enum":["updated_at"],"type":"string"},"direction":{"enum":["asc","desc"],"type":"string"}},"required":["field","direction"],"type":"object"},"type":"array"},{"type":"null"}],"default":null,"description":"Sort order, e.g. [{\"field\": \"updated_at\", \"direction\": \"desc\"}]."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Full-text search query across node content. When provided, 'locale' must also be provided. Leave empty to list without search."},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Valid Locale configured in the application for full-text search (e.g. 'de', 'en'). Required when 'query' is provided. Ignored otherwise."}},"additionalProperties":false}},{"name":"list_prompts","description":"List prompts for the authenticated application. Optionally filter by type, subtype, or active status. Returns paginated results ordered by active status then last update.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"page":{"default":1,"exclusiveMinimum":0,"type":"integer"},"limit":{"default":20,"exclusiveMinimum":0,"type":"integer"},"prompt_type":{"anyOf":[{"description":"Types of prompts in the system.","enum":["chat","search_answering","suggested_questions","chat_evaluation"],"type":"string"},{"type":"null"}],"default":null,"description":"'chat', 'search_answering', 'suggested_questions', or 'chat_evaluation'. Returns all when omitted."},"subtype":{"anyOf":[{"description":"Subtypes for prompts - used for routing vs output instructions.","enum":["routing_instructions","output_instructions"],"type":"string"},{"type":"null"}],"default":null,"description":"'routing_instructions' or 'output_instructions'. Returns all when omitted."},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"Activating a prompt automatically deactivates other prompts of the same type."},"interface_type":{"anyOf":[{"description":"Coarser grouping of EmbedType for prompt scoping.\n\nFollows the same pattern as StyleType in the interface_styles domain.\nEach value maps to one or more EmbedType values via ``embed_type_to_interface_type``.","enum":["chat","navigator","search","api","form"],"type":"string"},{"type":"null"}],"default":null,"description":"Interface scope of the prompt: 'chat', 'navigator', 'search', or 'api'. Required for 'chat' and 'search_answering' prompt types; omit for 'suggested_questions' and 'chat_evaluation'."}},"additionalProperties":false}},{"name":"list_tools","description":"List tools configured for the authenticated application. Optionally filter by active status. Returns all matching tools.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"true = active only, false = inactive only, omit = all."}},"additionalProperties":false}},{"name":"read_chat_request_documents","description":"Read the full document chunks retrieved for a single chat request (QA or SA). Returns chunk_id, vertex_id, title, full text, score, source, data source type, page metadata, and whether the chunk was cited in the final answer. Use this after read_session_detail to inspect the exact context the assistant grounded its answer in. Ordered by score descending.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chat_request_id":{"format":"uuid","type":"string"}},"required":["chat_request_id"],"additionalProperties":false}},{"name":"read_chat_request_tool_calls","description":"Read the full tool calls executed for a single chat request. Returns tool_call_id, tool_id, tool_name, tool_type, full arguments (JSON), and full content/response (JSON). Use this to inspect what the assistant invoked and how the tool responded. Ordered by timestamp ascending.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chat_request_id":{"format":"uuid","type":"string"}},"required":["chat_request_id"],"additionalProperties":false}},{"name":"read_data_source_runs","description":"List data source runs for the authenticated application, latest first. Optionally filter by data source ID or run status. Returns the latest runs (default 5) and the total matching count. Use this to track the progress of a run triggered via run_data_source.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"data_source_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"description":"Filter runs by data source UUID. Returns all runs when omitted."},"status":{"anyOf":[{"enum":["started","succeeded","aborted","timeout","cancelled"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter runs by status: 'started', 'succeeded', 'aborted', 'timeout', or 'cancelled'. Returns all when omitted."},"limit":{"default":5,"exclusiveMinimum":0,"maximum":10,"type":"integer"}},"additionalProperties":false}},{"name":"read_node","description":"Read a node by its ID. Returns full node details.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"node_id":{"format":"uuid","type":"string"}},"required":["node_id"],"additionalProperties":false}},{"name":"read_search_request_results","description":"Read the full search results returned for a single instant-search request. Returns chunk_id, vertex_id, title, full text, and relevance score. Use this to inspect the exact results a user saw for their search query. Ordered by score descending.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"search_request_id":{"format":"uuid","type":"string"}},"required":["search_request_id"],"additionalProperties":false}},{"name":"read_session_detail","description":"Read a single session with its full history in token-dense form. Returns all interactions (chat, navigation, search, form, voice). Document chunks and tool calls are returned as references (IDs + titles) - use read_node(vertex_id) or read_tool(tool_id) to fetch full content.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"session_id":{"format":"uuid","type":"string"}},"required":["session_id"],"additionalProperties":false}},{"name":"read_sessions","description":"List sessions for application. Filter by interaction types (chat, search, navigation, form_submission, voice), embed types, answer types, tool IDs, or a full-text search query. Each session includes its full history, but document chunks and tool calls are returned as references (IDs + titles) rather than full content.Returns paginated results ordered by start time descending.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"page":{"default":1,"exclusiveMinimum":0,"type":"integer"},"limit":{"default":10,"exclusiveMinimum":0,"maximum":10,"type":"integer"},"interactions":{"anyOf":[{"items":{"enum":["navigation","search","chat","form_submission","voice"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"'chat', 'search', 'navigation', 'form_submission', or 'voice'."},"embed_types":{"anyOf":[{"items":{"enum":["chat","search","chat_widget","search_interface","voice","api","form"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by embed type(s) through which sessions were initiated."},"answer_types":{"anyOf":[{"items":{"enum":["complete","no_knowledge","outside_scope","small_talk","follow_up_question"],"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter by answer type(s) returned to users. Only exists for chat sessions."},"tool_ids":{"anyOf":[{"items":{"format":"uuid","type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Filter sessions that involved specific tool UUID(s). Only exists for chat sessions."},"search_query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Full-text search across session content. Returns all when omitted."},"time_filter":{"anyOf":[{"enum":["this_month","this_year","last_month","last_30_days","last_6_months","last_12_months"],"type":"string"},{"pattern":"^\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}$","type":"string"},{"type":"null"}],"default":null,"description":"Time window for the analytics query. Accepts either: (a) a preset enum value: 'this_month', 'this_year', 'last_month', 'last_30_days' (default), 'last_6_months', 'last_12_months'; or (b) an explicit ISO date range as 'YYYY-MM-DD,YYYY-MM-DD' (inclusive)."}},"additionalProperties":false}},{"name":"read_tool","description":"Read a tool by its ID. Returns full tool details.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tool_id":{"format":"uuid","type":"string"}},"required":["tool_id"],"additionalProperties":false}},{"name":"run_data_source","description":"Trigger an asynchronous run (sync/crawl) of a data source by its ID. The run is queued as a background job. Returns the accepted status. Track progress with read_data_source_runs.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"data_source_id":{"format":"uuid","type":"string"}},"required":["data_source_id"],"additionalProperties":false}},{"name":"update_chat_request_analytics","description":"Update analytics fields on a chat request: summary, tags, answer_type, sentiment, classification_topic_id, or classification_intent_id. Only provided fields are updated. Use this to annotate or reclassify chat interactions after the fact.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"chat_request_id":{"format":"uuid","type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Short summary or annotation for the chat request."},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"List of tags to attach to the chat request."},"answer_type":{"anyOf":[{"enum":["complete","no_knowledge","outside_scope","small_talk","follow_up_question"],"type":"string"},{"type":"null"}],"default":null,"description":"Answer type classification: 'complete', 'no_knowledge', 'outside_scope', 'small_talk', or 'follow_up_question'."},"sentiment":{"anyOf":[{"enum":["positive","negative","neutral"],"type":"string"},{"type":"null"}],"default":null,"description":"Sentiment classification: 'positive', 'negative', or 'neutral'."},"classification_topic_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"description":"UUID of the classification topic to assign to this chat request."},"classification_intent_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"description":"UUID of the classification intent to assign to this chat request."}},"required":["chat_request_id"],"additionalProperties":false}},{"name":"update_data_source","description":"Update a data source by its ID. Only provided fields will be updated (partial update). Returns the updated data source.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"data_source_id":{"format":"uuid","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"type":{"anyOf":[{"enum":["website_crawler","file_upload","node_editor","default_node","openAPI","helpspace","custom_website_crawler","webhook","wordpress"],"type":"string"},{"type":"null"}],"default":null,"description":"Must match the 'type' discriminator of the 'settings' object when both are provided."},"schedule":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Cron expression (e.g. '0 3 * * *') or null to disable scheduled re-sync."},"settings":{"anyOf":[{"description":"Settings for data source, used for DB and creating models","oneOf":[{"properties":{"type":{"const":"website_crawler","default":"website_crawler","type":"string"},"crawler_type":{"enum":["playwright:firefox","playwright:adaptive","cheerio"],"type":"string","default":"cheerio"},"actor":{"enum":["apify/website-content-crawler"],"type":"string","default":"apify/website-content-crawler"},"urls":{"properties":{"start_urls":{"items":{"format":"uri","minLength":1,"type":"string"},"type":"array"}},"required":["start_urls"],"type":"object"},"max_pages_per_crawl":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":30},"max_crawl_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":20},"include_url_globs":{"items":{"type":"string"},"type":"array"},"exclude_url_globs":{"items":{"type":"string"},"type":"array"},"ignore_errors":{"default":false,"description":"Ignore any page-specific errors (Lang-Tab not available, status code etc.) and continue crawling.","type":"boolean"},"ignore_canonical_url":{"default":false,"description":"Ignore canonical URLs when crawling if they are incorrectly defined or the crawler should consider Query Parameters as well.","type":"boolean"},"remove_html_elements":{"default":"footer, div.footer, #footer, header, div.pageheader, #pageheader, script, style, noscript, svg, [role=\"alert\"], [role=\"banner\"], [role=\"dialog\"], [role=\"alertdialog\"], [role=\"region\"][aria-label*=\"skip\" i], [aria-modal=\"true\"], #branchly-chat-widget-container, #branchly-embed-container, #branchly-chat-embed-container, #branchly-search-interface-container","description":"List of CSS selectors to remove from the HTML content. List should be separated by commas.","type":"string"},"filters":{"anyOf":[{"properties":{"criteria":{"items":{"properties":{"field":{"enum":["published_time","modified_time"],"type":"string"},"condition":{"properties":{"type":{"enum":["max_age_days","contains"],"type":"string"},"value":{"anyOf":[{"type":"integer"},{"type":"string"}]}},"required":["type","value"],"type":"object"}},"required":["field","condition"],"type":"object"},"type":"array"}},"type":"object"},{"type":"null"}],"default":null},"title_suffix_to_remove":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Remove suffix or prefix from page titles."},"custom_tags":{"description":"Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.","items":{"type":"string"},"type":"array"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable","description":"Policy for handling unavailable Sources/URLs during data source run."}},"required":["urls","type"],"type":"object"},{"properties":{"type":{"const":"file_upload","default":"file_upload","type":"string"},"files":{"items":{"properties":{"file_name":{"type":"string"},"url":{"format":"uri","minLength":1,"type":"string"},"is_external":{"default":false,"type":"boolean"}},"required":["file_name","url"],"type":"object"},"type":"array"}},"required":["files","type"],"type":"object"},{"properties":{"type":{"const":"openAPI","default":"openAPI","type":"string"},"openapi_spec":{"type":"string"},"operation_id":{"type":"string"},"data_template_mapping":{"properties":{"text":{"type":"string"},"title":{"type":"string"},"source":{"type":"string"},"page_metadata":{"anyOf":[{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"images":{"anyOf":[{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"article":{"anyOf":[{"properties":{"published_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"modified_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"custom_metadata":{"anyOf":[{"properties":{"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"score_boost":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"required":["text","title","source"],"type":"object"},"extra_options":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"boolean"},{"type":"number"},{"type":"integer"},{"type":"null"}]},"type":"object"},{"type":"null"}],"default":null},"response_content_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable","description":"Policy for handling unavailable Sources/URLs during data source run."}},"required":["openapi_spec","operation_id","data_template_mapping","type"],"type":"object"},{"properties":{"type":{"const":"helpspace","default":"helpspace","type":"string"},"client_id":{"type":"string"},"api_token":{"type":"string"},"site_id":{"type":"integer"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable","description":"Policy for handling unavailable Sources/URLs during data source run."}},"required":["client_id","api_token","site_id","type"],"type":"object"},{"properties":{"type":{"const":"custom_website_crawler","default":"custom_website_crawler","type":"string"},"crawler_type":{"enum":["playwright:firefox","playwright:adaptive","cheerio"],"type":"string","default":"cheerio"},"actor":{"enum":["apify/website-content-crawler"],"type":"string","default":"apify/website-content-crawler"},"urls":{"properties":{"start_urls":{"items":{"format":"uri","minLength":1,"type":"string"},"type":"array"}},"required":["start_urls"],"type":"object"},"ignore_errors":{"default":false,"type":"boolean"},"main_content_marker":{"properties":{"type":{"const":"comments","default":"comments","type":"string"},"selector_filter":{"type":"string"},"start_marker":{"type":"string"},"end_marker":{"type":"string"}},"required":["selector_filter","start_marker","end_marker"],"type":"object"},"title_suffix_to_remove":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Remove suffix or prefix from page titles."},"graph_builder":{"properties":{"connect_start_urls_to_entry":{"default":true,"description":"Connect start URLs to entry node","type":"boolean"},"nodes_wo_out_edges_to_contact":{"default":false,"description":"Nodes without outgoing edges to contact nodes. Uses contact_node_ids if available, otherwise all contact nodes","type":"boolean"},"nodes_wo_out_edges_to_tool":{"default":false,"description":"Nodes without outgoing edges to tool nodes. Uses tool_node_ids if available, otherwise all tool nodes","type":"boolean"},"nodes_wo_edges_to_root":{"default":false,"description":"Nodes without incoming/outgoing edges to the root node/start url. Prevents orphan nodes","type":"boolean"},"contact_node_ids":{"anyOf":[{"items":{"format":"uuid","type":"string"},"type":"array"},{"type":"null"}],"default":null},"tool_node_ids":{"anyOf":[{"items":{"format":"uuid","type":"string"},"type":"array"},{"type":"null"}],"default":null},"navigation_builder":{"oneOf":[{"properties":{"type":{"const":"breadcrumbs","default":"breadcrumbs","type":"string"},"breadcrumb_selector":{"type":"string"}},"required":["breadcrumb_selector","type"],"type":"object"}]}},"required":["navigation_builder"],"type":"object"},"include_url_globs":{"items":{"type":"string"},"type":"array"},"exclude_url_globs":{"items":{"type":"string"},"type":"array"},"custom_tags":{"description":"Tags defined by the user that are displayed as badges in frontend. Applies to all pages crawled with this data source.","items":{"type":"string"},"type":"array"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"ignore","description":"Policy for handling unavailable Sources/URLs during data source run."},"fetch_image_captions":{"default":false,"description":"Fetch and generate captions for images found during crawling.","type":"boolean"}},"required":["urls","main_content_marker","graph_builder","type"],"type":"object"},{"description":"Settings for webhook data source.","properties":{"type":{"const":"webhook","default":"webhook","type":"string"},"data_template_mapping":{"anyOf":[{"properties":{"text":{"type":"string"},"title":{"type":"string"},"source":{"type":"string"},"page_metadata":{"anyOf":[{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"images":{"anyOf":[{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"article":{"anyOf":[{"properties":{"published_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"modified_time":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null},"custom_metadata":{"anyOf":[{"properties":{"tags":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"score_boost":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null}},"type":"object"},{"type":"null"}],"default":null}},"required":["text","title","source"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional template mapping for custom webhook payloads. If provided, incoming data will be mapped to internal format."}},"type":"object","required":["type"]},{"properties":{"type":{"const":"wordpress","default":"wordpress","type":"string"},"api_path":{"default":"/wp-json/wp/v2","type":"string"},"verify_ssl":{"default":true,"type":"boolean"},"timeout":{"default":30,"maximum":120,"minimum":5,"type":"integer"},"post_types":{"items":{"type":"string"},"minItems":1,"type":"array"},"post_status":{"items":{"type":"string"},"minItems":1,"type":"array"},"excluded_categories":{"items":{"type":"integer"},"type":"array"},"locale_detection":{"enum":["static","path_prefix","subdomain","query_param","wpml"],"type":"string","default":"static","description":"Strategy for inferring the locale from a post's URL. 'static' uses default_locale for all posts. 'path_prefix' reads the first path segment (domain.com/en/page). 'subdomain' reads the subdomain (en.domain.com). 'query_param' reads the ?lang= query parameter. 'wpml' queries the WPML REST API per language (?lang=xx) and tags each post with the queried language code."},"default_site_locale":{"default":"de","description":"Locale assigned to all posts in 'static' mode, or used as fallback in detection modes.","type":"string"},"locale_mapping":{"additionalProperties":{"type":"string"},"description":"Map detected URL language codes to app locales. e.g. {'en': 'en', 'de': 'de', 'fr_FR': 'fr'}. Applied after locale_detection; unmatched codes are used as-is. Falls back to default_locale when no locale is detected.Locale mapping is used to filter posts in 'wpml' language detection mode.","type":"object"},"unavailable_source_policy":{"anyOf":[{"description":"Policy for handling unavailable URLs during data source sync.","enum":["ignore","delete_unavailable"],"type":"string"},{"type":"null"}],"default":"delete_unavailable"},"filters":{"anyOf":[{"properties":{"criteria":{"items":{"properties":{"field":{"enum":["published_time","modified_time"],"type":"string"},"condition":{"properties":{"type":{"enum":["max_age_days","contains"],"type":"string"},"value":{"anyOf":[{"type":"integer"},{"type":"string"}]}},"required":["type","value"],"type":"object"}},"required":["field","condition"],"type":"object"},"type":"array"}},"type":"object"},{"type":"null"}],"default":null}},"type":"object","required":["type"]}]},{"type":"null"}],"default":null,"description":"Type-specific config. Pass as an inline JSON object — do NOT serialize to a string. Must include a 'type' discriminator field: 'website_crawler', 'pdf_upload', 'open_api', 'helpspace', 'custom_webcrawler', or 'webhook'."},"integration_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"description":"Integration UUID for connected data sources. Required for WordPress data sources."}},"required":["data_source_id"],"additionalProperties":false}},{"name":"update_node","description":"Update a content node by its ID. Only provided fields are updated. Title and text are locale dicts (e.g. {\"de\": \"Titel\"}) — provided keys are merged, others preserved. custom_metadata keys are likewise merged into the existing metadata.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"node_id":{"format":"uuid","type":"string"},"title":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Locale-keyed title map, e.g. {\"de\": \"Titel\", \"en\": \"Title\"}."},"text":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Locale-keyed body content (HTML) map, e.g. {\"de\": \"<p>Inhalt</p>\", \"en\": \"<p>Content</p>\"}."},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Source URL for the node content."},"custom_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null},"score_boost":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Boost value for search ranking. Higher is better. Use null for no boost."}},"required":["node_id"],"additionalProperties":false}},{"name":"update_prompt","description":"Activate or deactivate a prompt by its ID. Use is_active=true to restore a previous prompt version — the currently active prompt of the same type and subtype is deactivated automatically. To change prompt text, use create_prompt instead.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"prompt_id":{"format":"uuid","type":"string"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Activating a prompt automatically deactivates other prompts of the same type."}},"required":["prompt_id"],"additionalProperties":false}},{"name":"update_tool","description":"Update an existing tool by its ID. Fetches the current tool and applies partial updates to name, description, or active status.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"tool_id":{"format":"uuid","type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"snake_case tool name, max 64 characters. Used as the function name when the LLM calls the tool."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null},"tool_config":{"anyOf":[{"properties":{"properties":{"type":"array","items":{"oneOf":[{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"string","default":"string","type":"string"},"format":{"default":"text","description":"HTML input type","enum":["text","email","tel"],"type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"text_area","default":"text_area","type":"string"},"format":{"const":"text","default":"text","description":"HTML input type","type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"number","default":"number","type":"string"},"minimum":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"select","default":"select","type":"string"},"enum":{"items":{"type":"string"},"type":"array"}},"required":["name","enum","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"date","default":"date","type":"string"},"format":{"const":"date","default":"date","type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"time","default":"time","type":"string"},"format":{"const":"time","default":"time","type":"string"}},"required":["name","field_type"],"type":"object"},{"properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null},"required":{"default":false,"type":"boolean"},"field_type":{"const":"checkbox","default":"checkbox","type":"string"}},"required":["name","field_type"],"type":"object"}]}}},"required":["properties"],"type":"object"},{"description":"Configuration for the API tool sent to the LLM as a function.\n\nContains the parameters that the AI collects from users, which are then\nsubstituted into the URL, headers, and body using {{parameter_name}} notation.","properties":{"object":{"const":"api_tool_config","default":"api_tool_config","type":"string"},"parameters":{"description":"List of parameters to collect from the user for use in the API request.","items":{"description":"Parameter collected from the user for use in API requests.\n\nParameters can be used as placeholders in URL, headers, or body using {{parameter_name}} notation.","properties":{"name":{"description":"Name of the parameter. Used as a variable placeholder in URL, headers, or body with {{name}} notation.","type":"string"},"type":{"description":"Type of the parameter.","enum":["text","number","boolean"],"type":"string","default":"text"},"description":{"description":"Description of the parameter to help the AI understand what data to collect from the user.","type":"string"},"required":{"default":true,"description":"Whether this parameter is required for the API call.","type":"boolean"}},"required":["name","description"],"type":"object"},"type":"array"}},"type":"object"},{"type":"null"}],"default":null,"description":"Function schema sent to the LLM. Pass as an inline JSON object — do NOT serialize to a string. Use 'FormAPISchema' for form tools or 'APIToolConfig' for API-calling tools. Pass null to clear."},"function_arguments":{"anyOf":[{"properties":{"object":{"const":"knowledge_base_tool_arguments","default":"knowledge_base_tool_arguments","type":"string"},"retrieval_method":{"enum":["default","parent_context"],"type":"string","default":"default"},"rerank":{"default":false,"type":"boolean"},"formatter":{"enum":["chunks_with_source","numbered_chunks_with_source","grouped_chunks","grouped_chunks_with_custom_metadata","grouped_chunks_with_page_metadata"],"type":"string","default":"chunks_with_source"},"document_limit_rerank":{"default":25,"type":"integer"},"document_limit_default":{"default":15,"type":"integer"},"node_ids_filter":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null},"node_labels_filter":{"anyOf":[{"items":{"enum":["entry","content","contact","tool","fallback","integration","style","chat_navigator_style","search_style","search_result","navigator","feedback"],"type":"string"},"type":"array"},{"type":"null"}],"default":null},"sources_filter":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null},"data_source_types_filter":{"anyOf":[{"items":{"enum":["website_crawler","file_upload","node_editor","default_node","openAPI","helpspace","custom_website_crawler","webhook","wordpress"],"type":"string"},"type":"array"},{"type":"null"}],"default":null},"data_source_ids_filter":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null}},"type":"object"},{"properties":{"object":{"const":"node_lookup_tool_arguments","default":"node_lookup_tool_arguments","type":"string"},"node_ids":{"description":"List of node IDs to look up in the graph.","items":{"type":"string"},"type":"array"}},"type":"object"},{"properties":{"object":{"const":"send_email_tool_arguments","default":"send_email_tool_arguments","type":"string"},"sender_email":{"format":"email","type":"string"}},"required":["sender_email"],"type":"object"},{"properties":{"object":{"const":"web_search_tool_arguments","default":"web_search_tool_arguments","type":"string"},"limit":{"default":5,"type":"integer"}},"type":"object"},{"properties":{"object":{"const":"web_page_reader_tool_arguments","default":"web_page_reader_tool_arguments","type":"string"},"url":{"type":"string"},"target_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only returns elements from CSS selector."},"wait_for_selector":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Wait for a specific element to appear before returning. For dynamic content."}},"required":["url"],"type":"object"},{"properties":{"object":{"const":"form_tool_arguments","default":"form_tool_arguments","type":"string"},"form_title":{"additionalProperties":{"type":"string"},"type":"object"},"submit_message":{"additionalProperties":{"type":"string"},"type":"object"},"submit_button_text":{"additionalProperties":{"type":"string"},"type":"object"},"show_data_privacy_text":{"default":false,"type":"boolean"},"data_privacy_text":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Optional data privacy text. If provided, a checkbox should be displayed to the user."},"notification_email":{"anyOf":[{"format":"email","type":"string"},{"items":{"format":"email","type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Used for email forwarding of form submissions. If not provided, no email will be forwarded"}},"required":["form_title","submit_message","submit_button_text"],"type":"object"},{"properties":{"object":{"const":"venus_knowledge_graph_tool_arguments","default":"venus_knowledge_graph_tool_arguments","type":"string"},"projects":{"type":"string"},"channels":{"type":"string"},"entity_type":{"const":"Event","default":"Event","type":"string"},"domain":{"type":"string"},"event":{"anyOf":[{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"}},"required":["event_type","mapping"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional frontend event mapping."}},"required":["projects","channels","domain"],"type":"object"},{"properties":{"object":{"const":"regiondo_tool_arguments","default":"regiondo_tool_arguments","type":"string"},"secret_key":{"type":"string"},"public_key":{"type":"string"},"event":{"anyOf":[{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"}},"required":["event_type","mapping"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional frontend event mapping."}},"required":["secret_key","public_key"],"type":"object"},{"properties":{"object":{"const":"mcp_server_tool_arguments","default":"mcp_server_tool_arguments","type":"string"},"mcp_url":{"format":"uri","minLength":1,"type":"string"},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Optional headers to be sent with the request to the MCP server."},"image_url":{"anyOf":[{"format":"uri","minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional image URL to be shown in the Dashboard. Only for frontend display."},"events":{"description":"List of frontend events to be triggered by this tool","items":{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"},"mcp_tool_names":{"description":"List of tool names this frontend event should be mapped to. If empty, map to all tools of the MCP server.","items":{"type":"string"},"type":"array"},"mcp_tool_entities":{"anyOf":[{"properties":{"key":{"description":"The key to use to identify the entity from the MCP server response","type":"string"},"values":{"description":"The specific entities (values) that should be mapped to the frontend event","items":{"type":"string"},"type":"array"}},"required":["key"],"type":"object"},{"type":"null"}],"default":null,"description":"Mapping to distinguish entities from the MCP server response. If None, map to all entities"}},"required":["event_type","mapping"],"type":"object"},"type":"array"}},"required":["mcp_url"],"type":"object"},{"description":"Arguments for the API tool that define how to make HTTP requests.\n\nContains the static configuration for executing API requests.\nUse {{parameter_name}} mustache notation in url, query_params, headers, and body\nto reference parameters defined in tool_config.","properties":{"object":{"const":"api_tool_arguments","default":"api_tool_arguments","type":"string"},"method":{"description":"HTTP method for the API request.","enum":["GET","POST","PUT","PATCH","DELETE"],"type":"string"},"url":{"description":"URL of the API endpoint. Can include parameter placeholders using mustache notation like {{parameter_name}}.","type":"string"},"query_params":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"Query parameters for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}."},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"default":null,"description":"HTTP headers for the request. Values can include parameter placeholders using mustache notation like {{parameter_name}}."},"body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"description":"Request body. Values can include parameter placeholders using mustache notation like {{parameter_name}}."},"body_content_type":{"description":"Content type of the request body.","enum":["application/json","application/x-www-form-urlencoded"],"type":"string","default":"application/json"},"timeout":{"default":5,"description":"Request timeout in seconds.","maximum":30,"minimum":1,"type":"integer"},"response_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional dot notation to extract specific data from the API response."},"event":{"anyOf":[{"properties":{"event_type":{"enum":["carousel_v1"],"type":"string"},"mapping":{"properties":{"type":{"const":"carousel_v1","default":"carousel_v1","type":"string"},"id":{"default":"{{event_id}}","type":"string"},"title":{"default":"{{event_name}}","type":"string"},"image_url":{"default":"{{first_image.url}}","type":"string"},"resource_url":{"default":"{{link}}","type":"string"},"detail":{"default":"{{event_date_time.0.start_date}} - {{event_date_time.0.end_date}}<br>{{address.city}}<br>","type":"string"},"tags":{"default":"{{tags}}","type":"string"}},"type":"object"}},"required":["event_type","mapping"],"type":"object"},{"type":"null"}],"default":null,"description":"Optional frontend event mapping."}},"required":["method","url"],"type":"object"},{"description":"Arguments for the Buttons tool.\n\nThis tool allows AI to send buttons as a frontend event to users.\nNo inputs are required from the AI when executing this tool.\nMaximum 3 buttons can be sent.","properties":{"object":{"const":"buttons_tool_arguments","default":"buttons_tool_arguments","type":"string"},"buttons":{"description":"List of buttons to display. Maximum 10 buttons.","items":{"description":"Individual button in the buttons tool.\n\n- link_button: Opens URL in new tab (if external) or navigates (like follow-up actions)\n- button: Uses text as input for sending new request","properties":{"type":{"description":"Type of the button","enum":["link_button","button"],"type":"string"},"text":{"description":"Button text to display. Should be short and descriptive.","maxLength":50,"type":"string"},"url":{"anyOf":[{"format":"uri","minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"URL for link_button type. Required for link_button, not used for button type. Allow mailto: and tel: links as well."}},"required":["type","text"],"type":"object"},"maxItems":10,"minItems":1,"type":"array"}},"required":["buttons"],"type":"object"},{"properties":{"object":{"const":"google_maps_link_tool_arguments","default":"google_maps_link_tool_arguments","type":"string"},"icon_url":{"anyOf":[{"format":"uri","minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional URL of an icon to display inside the link button."},"default_travelmode":{"anyOf":[{"enum":["driving","walking","bicycling","transit"],"type":"string"},{"type":"null"}],"default":null,"description":"Default travel mode used when the AI does not specify one."}},"type":"object"},{"properties":{"object":{"const":"google_maps_embed_tool_arguments","default":"google_maps_embed_tool_arguments","type":"string"},"default_mode":{"anyOf":[{"enum":["driving","walking","bicycling","transit","flying"],"type":"string"},{"type":"null"}],"default":null,"description":"Default travel mode used when the AI does not specify one."}},"type":"object"},{"properties":{"object":{"const":"calendly_tool_arguments","default":"calendly_tool_arguments","type":"string"},"integration_id":{"description":"ID of the connected Calendly integration to use for scheduling.","format":"uuid","type":"string"}},"required":["integration_id"],"type":"object"},{"type":"null"}],"default":null,"description":"Fixed runtime arguments NOT collected from the LLM (e.g. recipient email, rerank flag, knowledge-base ID). Pass as an inline JSON object — do NOT serialize to a string. Must include an 'object' discriminator field matching the tool type."}},"required":["tool_id"],"additionalProperties":false}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-20T20:56:24.225Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:56:24.166Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 3420ms"]},"poisoning":{"score":15,"max":15,"notes":["37 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.branchly.io/mcp","reachable":true,"authRequired":false,"latencyMs":3420,"serverInfo":{"name":"branchly-mcp-server","version":"0.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://framerusercontent.com/images/NFE5BZerNAUTLhQp58AuwU3hWg.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}