The Olark MCP server provides tools for editing bots and analyzing chat transcripts.
When editing or analyzing bots, the get_guidance_for_bots tool will provide additional
information about how Olark's bot's work and guidance for updating their behavior.
Users may reference to Olark's bots as bots, chatbots, AI Assistants, or Aiden; these are all the same thing.
When analyzing transcripts or reporting data, the get_guidance_for_reporting tool will
provide additional information about Olark transcripts, metadata reports, agent activity,
and guidance for analysis.
Discoverability
0/6 passed0 of 6 passed0/100
Client listings and public setup information.
mcp.json or server-card.json
Either mcp.json or an MCP Server Card declaring this endpoint passes.
No matching mcp.json manifest or MCP Server Card was found at the checked URLs.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description74/100
Return behavior-spec field semantics and editing guidance for the caller.
This follows the author's privileges, so reuse it throughout the conversation
instead of fetching it for every bot. Follow each bot's usage_instructions for
capability advice specific to its owning site.
Describe the returned information so the agent knows whether it will answer the request.
Inputs100/100
This tool declares no inputs, so argument descriptions are not needed.
No input fields.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"name": "get_guidance_for_bots",
"title": "Get guidance for bots",
"description": "\n Return behavior-spec field semantics and editing guidance for the caller.\n\n This follows the author's privileges, so reuse it throughout the conversation\n instead of fetching it for every bot. Follow each bot's usage_instructions for\n capability advice specific to its owning site.\n ",
"inputSchema": {
"type": "object",
"title": "get_guidance_for_botsArguments",
"properties": {}
},
"outputSchema": {
"type": "object",
"title": "get_guidance_for_botsOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "string",
"title": "Result"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Returns the full state of a bot: behavior_spec JSON, company_name, tone_instructions, prefer_human_agents, and `is_live` deployment status.
The ab_tests field identifies configured A/B tests, this bot's role, the paired
preset IDs, and the variant's traffic percentage. Check is_active to distinguish
tests with positive variant traffic from inactive configurations.
Call get_guidance_for_bots once in this conversation before using this tool. Use get_bot to inspect a bot before proposing or applying edits.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
intelligence_preset_id
Internal intelligence preset UUID for the bot.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Creates a new bot from a website domain, a copy of an existing bot, or explicit bot_input fields (name, company_name, tone_instructions, prefer_human_agents, behavior_spec).
Call get_guidance_for_bots once in this conversation before using this tool. New bots are editable via MCP immediately. Use `source_intelligence_preset_id` to copy a live or non-live bot when the user wants to edit a bot that cannot be changed in place. Call publish_bot after the user confirms to make the bot visible in the AI Assistants tab at app.olark.com; publishing does not deploy the bot to the chat widget.
The description explains the capability, when to use it, and what to expect.
Inputs28/100
21 of 60 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
$defs › CreateBotFromUrlDomain › source_type
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › CreateBotFromUrlDomain › url_domain
Company website domain to research and author a new draft bot from (e.g. example.com). Scheme and www prefix are optional.
Clear enough to supply this argument.
$defs › CreateBotFromExisting › source_type
Not provided
Missing description. Explain what this value means and how to supply it.
Missing description. Explain what this value means and how to supply it.
$defs › PublicMCPCapability › object_type
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PublicMCPCapability › provider
Unauthenticated MCP provider. Generic servers may expose only tools that the server declares read-only.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
$defs › PublicMCPCapability › mcp_url
Unauthenticated public MCP server URL for the configured provider.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
$defs › PublicMCPCapability › allowed_tool_names
Exact Generic MCP tool names to allow when a server does not declare them read-only. When omitted, Generic MCP tools must declare the standard read-only hint.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
$defs › CustomToolsAgentCapability › object_type
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › CustomToolsAgentCapability › tools
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ProductSearchCapability › object_type
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ProductSearchCapability › platform
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ProductSearchCapability › storefront_url
Canonical HTTPS URL of the storefront whose public catalog to search.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Missing description. Explain what this value means and how to supply it.
$defs › CreateBotFromInput › company_name
Company name the bot represents. Omit to leave unchanged on update.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
$defs › CreateBotFromInput › tone_instructions
Tone and voice instructions for how the bot should sound. Omit to leave unchanged on update.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
$defs › CreateBotFromInput › prefer_human_agents
When true, visitors are connected to a human agent if one is available rather than an AI agent; the AI agent replies if no human agents are available. Omit to leave unchanged on update.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
$defs › CreateBotFromInput › source_type
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Updates non-null fields on an editable bot (name, company_name, tone_instructions, prefer_human_agents, and/or behavior_spec).
Call get_guidance_for_bots once in this conversation before using this tool. Call get_bot immediately before update_bot to confirm the current bot state and avoid overwriting changes made by another user. Follow get_guidance_for_bots for whether this account can edit live bots; copy a live bot with create_bot when direct editing is unavailable. Prefer proposing concrete changes to the user and waiting for confirmation before calling update_bot.
The description explains the capability, when to use it, and what to expect.
Inputs33/100
20 of 56 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
intelligence_preset_id
Internal intelligence preset UUID for the bot.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
$defs › BotInput › name
Display name for the draft bot. Omit to leave unchanged on update.
Missing description. Explain what this value means and how to supply it.
$defs › PublicMCPCapability › object_type
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PublicMCPCapability › provider
Unauthenticated MCP provider. Generic servers may expose only tools that the server declares read-only.
Clear enough to supply this argument.
$defs › PublicMCPCapability › mcp_url
Unauthenticated public MCP server URL for the configured provider.
Clear enough to supply this argument.
$defs › PublicMCPCapability › allowed_tool_names
Exact Generic MCP tool names to allow when a server does not declare them read-only. When omitted, Generic MCP tools must declare the standard read-only hint.
Clear enough to supply this argument.
$defs › CustomToolsAgentCapability › object_type
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › CustomToolsAgentCapability › tools
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ProductSearchCapability › object_type
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ProductSearchCapability › platform
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ProductSearchCapability › storefront_url
Canonical HTTPS URL of the storefront whose public catalog to search.
Missing description. Explain what this value means and how to supply it.
$defs › BotInput › company_name
Company name the bot represents. Omit to leave unchanged on update.
Clear enough to supply this argument.
$defs › BotInput › tone_instructions
Tone and voice instructions for how the bot should sound. Omit to leave unchanged on update.
Clear enough to supply this argument.
$defs › BotInput › prefer_human_agents
When true, visitors are connected to a human agent if one is available rather than an AI agent; the AI agent replies if no human agents are available. Omit to leave unchanged on update.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Makes a bot visible in the AI Assistants tab at app.olark.com. The response includes assistant_page_url for deployment and further configuration; publishing does not deploy the bot to the chat widget.
Call get_guidance_for_bots once in this conversation before using this tool. Never publish without explicit user confirmation.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
intelligence_preset_id
Internal intelligence preset UUID for the bot.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
Lists knowledge sources that a bot can access (live search domains, crawled URLs, files) in order to answer visitor questions accurately and appropriately.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
intelligence_preset_id
Internal intelligence preset UUID for the bot.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
Adds a knowledge source to an editable bot from a website domain or markdown content. Follow get_guidance_for_bots for whether this account can edit live bots; copy the bot with create_bot when direct editing is unavailable.
The description explains the capability, when to use it, and what to expect.
Inputs58/100
4 of 6 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
intelligence_preset_id
Internal intelligence preset UUID for the bot.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/100
Removes a knowledge source from an editable bot. Follow get_guidance_for_bots for whether this account can edit live bots; copy the bot with create_bot when direct editing is unavailable.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
intelligence_preset_id
Internal intelligence preset UUID for the bot.
Clarify units, where to obtain this value, or conventions not already expressed in the schema.
knowledge_source_id
Knowledge source id from list_knowledge_sources_for_bot.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Use when an Olark user wants to analyze a filtered slice of transcripts to answer questions about leads, themes, common questions, or what conversations were about during a date range. Examples: "Who are my important leads last week?", "What were the conversations about during the first week of February 2026?", or "Show me transcripts mentioning pricing or demos." Returns XML containing the applied query filters plus up to 100 matching transcripts, where each transcript includes its id, transcript URL, created/start/end timestamps, transcript type, tags, and conversation text for analysis.
Call get_guidance_for_reporting once in this conversation before using this tool.
The description explains the capability, when to use it, and what to expect.
Inputs96/100
Input documentation gives an agent enough context to populate the arguments.
search_text
Optional full-text transcript search query for analyzing themes, topics, questions, or keywords in conversations, such as pricing, demo, refund, or integration. Blank values are ignored.
Clear enough to supply this argument.
visitor_name
Optional visitor name filter to narrow the transcript slice to a specific person. Blank values are ignored.
Clear enough to supply this argument.
visitor_email
Optional visitor email filter to narrow the transcript slice to a specific person or company contact. Blank values are ignored.
Clear enough to supply this argument.
tags
Optional transcript tags to match when analyzing a subset of conversations, for example VIP, lead, sales, or support. Empty or blank tag values are ignored.
Clear enough to supply this argument.
start_time
Optional RFC 3339 timestamp string with timezone offset or Z marking the start of the time window to analyze, for example 2026-06-25T00:00:00Z.
Clear enough to supply this argument.
end_time
Optional RFC 3339 timestamp string with timezone offset or Z marking the end of the time window to analyze, for example 2026-06-26T00:00:00Z.
Clear enough to supply this argument.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
Align the output schema with the tool’s documented result.
View output schema
{
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
}
Original tool metadata
{
"name": "search_transcripts",
"title": "Search transcripts",
"description": "Use when an Olark user wants to analyze a filtered slice of transcripts to answer questions about leads, themes, common questions, or what conversations were about during a date range. Examples: \"Who are my important leads last week?\", \"What were the conversations about during the first week of February 2026?\", or \"Show me transcripts mentioning pricing or demos.\" Returns XML containing the applied query filters plus up to 100 matching transcripts, where each transcript includes its id, transcript URL, created/start/end timestamps, transcript type, tags, and conversation text for analysis.\n\n Call get_guidance_for_reporting once in this conversation before using this tool.\n ",
"inputSchema": {
"type": "object",
"title": "search_transcriptsArguments",
"properties": {
"tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Tags",
"default": null,
"description": "Optional transcript tags to match when analyzing a subset of conversations, for example VIP, lead, sales, or support. Empty or blank tag values are ignored."
},
"end_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "End Time",
"default": null,
"description": "Optional RFC 3339 timestamp string with timezone offset or Z marking the end of the time window to analyze, for example 2026-06-26T00:00:00Z."
},
"start_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Start Time",
"default": null,
"description": "Optional RFC 3339 timestamp string with timezone offset or Z marking the start of the time window to analyze, for example 2026-06-25T00:00:00Z."
},
"search_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Search Text",
"default": null,
"description": "Optional full-text transcript search query for analyzing themes, topics, questions, or keywords in conversations, such as pricing, demo, refund, or integration. Blank values are ignored."
},
"visitor_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Visitor Name",
"default": null,
"description": "Optional visitor name filter to narrow the transcript slice to a specific person. Blank values are ignored."
},
"visitor_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Visitor Email",
"default": null,
"description": "Optional visitor email filter to narrow the transcript slice to a specific person or company contact. Blank values are ignored."
}
}
},
"outputSchema": {
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Use when an Olark user wants the transcript metadata report for a date range (the same underlying data as the dashboard Export CSV / transcript metadata report). Prefer this over search_transcripts when conversation content is not important to the analysis — it can quickly report over much larger timespans without returning message text. Requires RFC 3339 start_time and end_time. Returns pretty-printed XML with query metadata and up to 2000 conversation rows including timing, visitor/operator fields, tags, custom fields, feedback, and transcript URLs. Sets truncated=true when more rows exist beyond the limit.
Call get_guidance_for_reporting once in this conversation before using this tool.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
start_time
Required RFC 3339 timestamp string with timezone offset or Z marking the start of the report window, for example 2026-06-25T00:00:00Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end_time
Required RFC 3339 timestamp string with timezone offset or Z marking the end of the report window, for example 2026-06-26T00:00:00Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
Describe the returned fields so an agent can interpret the result.
View output schema
{
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
}
Original tool metadata
{
"name": "get_transcript_metadata",
"title": "Get transcript metadata",
"description": "Use when an Olark user wants the transcript metadata report for a date range (the same underlying data as the dashboard Export CSV / transcript metadata report). Prefer this over search_transcripts when conversation content is not important to the analysis — it can quickly report over much larger timespans without returning message text. Requires RFC 3339 start_time and end_time. Returns pretty-printed XML with query metadata and up to 2000 conversation rows including timing, visitor/operator fields, tags, custom fields, feedback, and transcript URLs. Sets truncated=true when more rows exist beyond the limit.\n\n Call get_guidance_for_reporting once in this conversation before using this tool.\n ",
"inputSchema": {
"type": "object",
"title": "get_transcript_metadataArguments",
"required": [
"start_time",
"end_time"
],
"properties": {
"end_time": {
"type": "string",
"title": "End Time",
"description": "Required RFC 3339 timestamp string with timezone offset or Z marking the end of the report window, for example 2026-06-26T00:00:00Z."
},
"start_time": {
"type": "string",
"title": "Start Time",
"description": "Required RFC 3339 timestamp string with timezone offset or Z marking the start of the report window, for example 2026-06-25T00:00:00Z."
}
}
},
"outputSchema": {
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Use when an Olark user wants site-level agent activity for a date range (availability, chats, missed chats, response times, ratings, and status/presence history), corresponding to the dashboard Agent Activity report. Requires RFC 3339 start_time and end_time (treated as half-open [start_time, end_time)). Underlying APIs are day-granular in UTC, so sub-day windows expand to full UTC calendar days; an exclusive midnight end does not include that next calendar day. Returns pretty-printed XML with site rollups, per-operator activity, and per-operator presence sessions.
Call get_guidance_for_reporting once in this conversation before using this tool.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
start_time
Required RFC 3339 timestamp string with timezone offset or Z marking the start of the report window, for example 2026-06-25T00:00:00Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end_time
Required RFC 3339 timestamp string with timezone offset or Z marking the end of the report window, for example 2026-06-26T00:00:00Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
Describe the returned fields so an agent can interpret the result.
View output schema
{
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
}
Original tool metadata
{
"name": "get_agent_activity_data",
"title": "Get agent activity data",
"description": "Use when an Olark user wants site-level agent activity for a date range (availability, chats, missed chats, response times, ratings, and status/presence history), corresponding to the dashboard Agent Activity report. Requires RFC 3339 start_time and end_time (treated as half-open [start_time, end_time)). Underlying APIs are day-granular in UTC, so sub-day windows expand to full UTC calendar days; an exclusive midnight end does not include that next calendar day. Returns pretty-printed XML with site rollups, per-operator activity, and per-operator presence sessions.\n\n Call get_guidance_for_reporting once in this conversation before using this tool.\n ",
"inputSchema": {
"type": "object",
"title": "get_agent_activity_dataArguments",
"required": [
"start_time",
"end_time"
],
"properties": {
"end_time": {
"type": "string",
"title": "End Time",
"description": "Required RFC 3339 timestamp string with timezone offset or Z marking the end of the report window, for example 2026-06-26T00:00:00Z."
},
"start_time": {
"type": "string",
"title": "Start Time",
"description": "Required RFC 3339 timestamp string with timezone offset or Z marking the start of the report window, for example 2026-06-25T00:00:00Z."
}
}
},
"outputSchema": {
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Use when an Olark user wants bucketed visitor-funnel counts over a date range. Submit up to 6 custom or catalog Funnel JSON objects. Custom funnels are available for ranges beginning September 22, 2026 UTC (September 28 for weekly buckets); older ranges support catalog funnels through legacy data sources. See reporting guidance for the 24-hour completion window and visitor counting semantics. The half-open range may produce at most 500 buckets for the chosen bucket size. Returns pretty-printed XML with one series of bucket counts per submitted funnel.
Call get_guidance_for_reporting once in this conversation before using this tool.
The description explains the capability, when to use it, and what to expect.
Inputs7/100
3 of 34 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
$defs › FunnelStep › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › VisitBeganEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › VisitContinuedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › VisitContinuedEventFilter › duration
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › MessageReceivedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › MessageSentEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ExperimentViewedFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ExperimentViewedFilter › variant_id
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › AgentAvailabilitySeenFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
Missing description. Explain what this value means and how to supply it.
$defs › ChatboxExpandedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › ContactInformationProvidedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › EnticementViewedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › EnticementClickedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › EnticementDismissedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › name
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › path
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › path_contains
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › url
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › url_contains
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › search
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › search_contains
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › search_regex
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › utm_source
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › utm_medium
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › utm_campaign
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › utm_term
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › PageViewedEventFilter › utm_content
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › SingleFunnel › order
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › FunnelExclusionRule › after_step
Not provided
Missing description. Explain what this value means and how to supply it.
$defs › FunnelExclusionRule › before_step
Not provided
Missing description. Explain what this value means and how to supply it.
start_time
Required RFC 3339 timestamp string with timezone offset or Z marking the start of the report window, for example 2026-06-25T00:00:00Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end_time
Required RFC 3339 timestamp string with timezone offset or Z marking the end of the report window, for example 2026-06-26T00:00:00Z.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
bucket
UTC time bucket for the timeseries. start_time and end_time must align to bucket boundaries; end_time is exclusive. At most 500 buckets are allowed for the requested range. Defaults to day.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations75/100
Declare idempotentHint based on the tool’s actual behavior.
{
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
}
Original tool metadata
{
"name": "get_funnel_metrics",
"title": "Get funnel metrics",
"description": "Use when an Olark user wants bucketed visitor-funnel counts over a date range. Submit up to 6 custom or catalog Funnel JSON objects. Custom funnels are available for ranges beginning September 22, 2026 UTC (September 28 for weekly buckets); older ranges support catalog funnels through legacy data sources. See reporting guidance for the 24-hour completion window and visitor counting semantics. The half-open range may produce at most 500 buckets for the chosen bucket size. Returns pretty-printed XML with one series of bucket counts per submitted funnel.\n\n Call get_guidance_for_reporting once in this conversation before using this tool.\n ",
"inputSchema": {
"type": "object",
"$defs": {
"FunnelStep": {
"type": "object",
"title": "FunnelStep",
"required": [
"name",
"event_filter"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"event_filter": {
"oneOf": [
{
"$ref": "#/$defs/VisitBeganEventFilter"
},
{
"$ref": "#/$defs/VisitContinuedEventFilter"
},
{
"$ref": "#/$defs/MessageReceivedEventFilter"
},
{
"$ref": "#/$defs/MessageSentEventFilter"
},
{
"$ref": "#/$defs/ExperimentViewedFilter"
},
{
"$ref": "#/$defs/AgentAvailabilitySeenFilter"
},
{
"$ref": "#/$defs/ChatboxExpandedEventFilter"
},
{
"$ref": "#/$defs/ContactInformationProvidedEventFilter"
},
{
"$ref": "#/$defs/EnticementViewedEventFilter"
},
{
"$ref": "#/$defs/EnticementClickedEventFilter"
},
{
"$ref": "#/$defs/EnticementDismissedEventFilter"
},
{
"$ref": "#/$defs/PageViewedEventFilter"
}
],
"title": "Event Filter",
"discriminator": {
"mapping": {
"Page Viewed": "#/$defs/PageViewedEventFilter",
"Visit Began": "#/$defs/VisitBeganEventFilter",
"Message Sent": "#/$defs/MessageSentEventFilter",
"Visit Continued": "#/$defs/VisitContinuedEventFilter",
"Chatbox Expanded": "#/$defs/ChatboxExpandedEventFilter",
"Message Received": "#/$defs/MessageReceivedEventFilter",
"Enticement Viewed": "#/$defs/EnticementViewedEventFilter",
"Experiment Viewed": "#/$defs/ExperimentViewedFilter",
"Enticement Clicked": "#/$defs/EnticementClickedEventFilter",
"Enticement Dismissed": "#/$defs/EnticementDismissedEventFilter",
"Agent Availability Seen": "#/$defs/AgentAvailabilitySeenFilter",
"Contact Information Provided": "#/$defs/ContactInformationProvidedEventFilter"
},
"propertyName": "name"
}
}
}
},
"UnionFunnel": {
"type": "object",
"title": "UnionFunnel",
"required": [
"funnels"
],
"properties": {
"funnels": {
"type": "array",
"items": {
"$ref": "#/$defs/SingleFunnel"
},
"title": "Funnels"
}
},
"description": "Visitors count if they complete any of the contained SingleFunnel paths."
},
"SingleFunnel": {
"type": "object",
"title": "SingleFunnel",
"required": [
"steps"
],
"properties": {
"order": {
"enum": [
"in_order",
"any_order"
],
"type": "string",
"title": "Order",
"default": "in_order"
},
"steps": {
"type": "array",
"items": {
"$ref": "#/$defs/FunnelStep"
},
"title": "Steps"
},
"exclusions": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/FunnelExclusionRule"
}
},
{
"type": "null"
}
],
"title": "Exclusions",
"default": null
}
},
"description": "Flat funnel over named leaf steps (not nestable).\n\nsteps - named steps of the funnel\nexclusions - list of funnel exclusion rules\n\nEntry / completion (leaf steps only)\n------------------------------------\n- ``order=\"any_order\"``: entry is ``min`` of leaf entry times; completion is\n ``max`` of leaf completion times.\n- ``order=\"in_order\"``: entry is the first leaf's entry; completion is the\n last leaf's completion. Adjacent leaves require\n ``Prev.completion < Next.entry``.\n\nExclusion gaps (Amplitude-style between steps)\n----------------------------------------------\nEach ``FunnelExclusionRule`` forbids matching ``event_filter`` events in a\ngap bounded by named steps:\n\n- ``t_left`` = completion of ``after_step``, or unbounded if ``after_step``\n is ``None``\n- ``t_right`` = entry of ``before_step``, or unbounded if ``before_step``\n is ``None``\n\nThe path fails if any event matching ``event_filter`` has\n``t_left < t_excluded < t_right`` (strict)."
},
"FunnelExclusionRule": {
"type": "object",
"title": "FunnelExclusionRule",
"required": [
"event_filter"
],
"properties": {
"after_step": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "After Step",
"default": null
},
"before_step": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Before Step",
"default": null
},
"event_filter": {
"oneOf": [
{
"$ref": "#/$defs/VisitBeganEventFilter"
},
{
"$ref": "#/$defs/VisitContinuedEventFilter"
},
{
"$ref": "#/$defs/MessageReceivedEventFilter"
},
{
"$ref": "#/$defs/MessageSentEventFilter"
},
{
"$ref": "#/$defs/ExperimentViewedFilter"
},
{
"$ref": "#/$defs/AgentAvailabilitySeenFilter"
},
{
"$ref": "#/$defs/ChatboxExpandedEventFilter"
},
{
"$ref": "#/$defs/ContactInformationProvidedEventFilter"
},
{
"$ref": "#/$defs/EnticementViewedEventFilter"
},
{
"$ref": "#/$defs/EnticementClickedEventFilter"
},
{
"$ref": "#/$defs/EnticementDismissedEventFilter"
},
{
"$ref": "#/$defs/PageViewedEventFilter"
}
],
"title": "Event Filter",
"discriminator": {
"mapping": {
"Page Viewed": "#/$defs/PageViewedEventFilter",
"Visit Began": "#/$defs/VisitBeganEventFilter",
"Message Sent": "#/$defs/MessageSentEventFilter",
"Visit Continued": "#/$defs/VisitContinuedEventFilter",
"Chatbox Expanded": "#/$defs/ChatboxExpandedEventFilter",
"Message Received": "#/$defs/MessageReceivedEventFilter",
"Enticement Viewed": "#/$defs/EnticementViewedEventFilter",
"Experiment Viewed": "#/$defs/ExperimentViewedFilter",
"Enticement Clicked": "#/$defs/EnticementClickedEventFilter",
"Enticement Dismissed": "#/$defs/EnticementDismissedEventFilter",
"Agent Availability Seen": "#/$defs/AgentAvailabilitySeenFilter",
"Contact Information Provided": "#/$defs/ContactInformationProvidedEventFilter"
},
"propertyName": "name"
}
}
}
},
"PageViewedEventFilter": {
"type": "object",
"title": "PageViewedEventFilter",
"properties": {
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url",
"default": null
},
"name": {
"type": "string",
"const": "Page Viewed",
"title": "Name",
"default": "Page Viewed"
},
"path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Path",
"default": null
},
"search": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Search",
"default": null
},
"utm_term": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Utm Term",
"default": null
},
"utm_medium": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Utm Medium",
"default": null
},
"utm_source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Utm Source",
"default": null
},
"utm_content": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Utm Content",
"default": null
},
"search_regex": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Search Regex",
"default": null
},
"url_contains": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url Contains",
"default": null
},
"utm_campaign": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Utm Campaign",
"default": null
},
"path_contains": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Path Contains",
"default": null
},
"search_contains": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Search Contains",
"default": null
}
},
"description": "Match measurement ``row_type=page`` events. Set fields are AND-ed; bare filter\nmatches any page view. UTMs match ``campaign_*`` parquet columns. DuckDB only."
},
"VisitBeganEventFilter": {
"type": "object",
"title": "VisitBeganEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Visit Began",
"title": "Name",
"default": "Visit Began"
}
}
},
"ExperimentViewedFilter": {
"type": "object",
"title": "ExperimentViewedFilter",
"required": [
"variant_id"
],
"properties": {
"name": {
"type": "string",
"const": "Experiment Viewed",
"title": "Name",
"default": "Experiment Viewed"
},
"variant_id": {
"anyOf": [
{
"enum": [
"control",
"variant"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Variant Id"
}
}
},
"MessageSentEventFilter": {
"type": "object",
"title": "MessageSentEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Message Sent",
"title": "Name",
"default": "Message Sent"
}
}
},
"VisitContinuedEventFilter": {
"type": "object",
"title": "VisitContinuedEventFilter",
"required": [
"duration"
],
"properties": {
"name": {
"type": "string",
"const": "Visit Continued",
"title": "Name",
"default": "Visit Continued"
},
"duration": {
"enum": [
10,
90
],
"type": "integer",
"title": "Duration"
}
}
},
"ChatboxExpandedEventFilter": {
"type": "object",
"title": "ChatboxExpandedEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Chatbox Expanded",
"title": "Name",
"default": "Chatbox Expanded"
}
}
},
"MessageReceivedEventFilter": {
"type": "object",
"title": "MessageReceivedEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Message Received",
"title": "Name",
"default": "Message Received"
}
}
},
"AgentAvailabilitySeenFilter": {
"type": "object",
"title": "AgentAvailabilitySeenFilter",
"required": [
"agents_available"
],
"properties": {
"name": {
"type": "string",
"const": "Agent Availability Seen",
"title": "Name",
"default": "Agent Availability Seen"
},
"agents_available": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Agents Available"
}
}
},
"EnticementViewedEventFilter": {
"type": "object",
"title": "EnticementViewedEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Enticement Viewed",
"title": "Name",
"default": "Enticement Viewed"
}
},
"description": "Match any Enticement Viewed event in funnel steps or exclusions; no side effects."
},
"EnticementClickedEventFilter": {
"type": "object",
"title": "EnticementClickedEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Enticement Clicked",
"title": "Name",
"default": "Enticement Clicked"
}
},
"description": "Match any Enticement Clicked event in funnel steps or exclusions; no side effects."
},
"EnticementDismissedEventFilter": {
"type": "object",
"title": "EnticementDismissedEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Enticement Dismissed",
"title": "Name",
"default": "Enticement Dismissed"
}
},
"description": "Match any Enticement Dismissed event in funnel steps or exclusions; no side effects."
},
"ContactInformationProvidedEventFilter": {
"type": "object",
"title": "ContactInformationProvidedEventFilter",
"properties": {
"name": {
"type": "string",
"const": "Contact Information Provided",
"title": "Name",
"default": "Contact Information Provided"
}
}
}
},
"title": "get_funnel_metricsArguments",
"required": [
"funnels",
"start_time",
"end_time"
],
"properties": {
"bucket": {
"enum": [
"hour",
"day",
"week"
],
"type": "string",
"title": "Bucket",
"default": "day",
"description": "UTC time bucket for the timeseries. start_time and end_time must align to bucket boundaries; end_time is exclusive. At most 500 buckets are allowed for the requested range. Defaults to day."
},
"funnels": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/$defs/SingleFunnel"
},
{
"$ref": "#/$defs/UnionFunnel"
}
]
},
"title": "Funnels",
"maxItems": 6,
"minItems": 1,
"description": "One or more Funnel definitions to compute (maximum 6 per request). May be a custom SingleFunnel or UnionFunnel; get_guidance_for_reporting includes custom and catalog examples and query limits."
},
"end_time": {
"type": "string",
"title": "End Time",
"description": "Required RFC 3339 timestamp string with timezone offset or Z marking the end of the report window, for example 2026-06-26T00:00:00Z."
},
"start_time": {
"type": "string",
"title": "Start Time",
"description": "Required RFC 3339 timestamp string with timezone offset or Z marking the start of the report window, for example 2026-06-25T00:00:00Z."
}
}
},
"outputSchema": {
"type": "object",
"title": "ReportingXmlResponse",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml"
}
},
"description": "MCP response wrapper for reporting tools that return pretty-printed XML.\n\nUsed by transcript search, transcript metadata, and agent activity tools.\nThe ``xml`` field is subject to central PII redaction for reporting-family\ntools when enabled for the site."
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01Search transcriptsUse when an Olark user wants to analyze a filtered slice of transcripts to answer questions about leads, themes, common questions, or what conversations were…
02List all botsLists all bots for the authenticated site.
03Get agent activity dataUse when an Olark user wants site-level agent activity for a date range (availability, chats, missed chats, response times, ratings, and status/presence hist…
04Get preview URL for botBuilds a browser preview chat URL for a bot using the given site base URL.
05Get transcript metadataUse when an Olark user wants the transcript metadata report for a date range (the same underlying data as the dashboard Export CSV / transcript metadata repo…
Want to run these tasks against your MCP server with us?
olark setup, tools, quality score, publishing readiness, and alternatives.
How do I add olark to Claude, ChatGPT, or Cursor?
Add olark to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.olark.com/mcp.
Is olark MCP ready for ChatGPT and Claude?
As of November 11, 2026, olark scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is olark's MCP tool documentation?
As of November 11, 2026, olark scores 79/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 15 of 15 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to olark?
As of November 12, 2026, alternatives to olark in customer-support on the Manufact MCP leaderboard include Sunflower Clinic, Arketa Help Center, Assembled, Brainfish, and ClearFeed.
How can olark improve its MCP documentation?
get_funnel_metrics is the lowest-scoring reviewed tool at 67/100. 3 of 34 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.