FrontDesk Chat
Server Details
AI front desk for your website: read chats, bookings and analytics, and draft desks you approve.
- Status
- Healthy
- Uptime
- 42.2% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 17 tools
Most tools cleanly pair a verb with a distinct resource (sites, desks, conversations, visitors, bookings, schedules, skills, sources), so selection is usually obvious. Minor overlap: get_desk ('full configuration') vs list_desk_questions, and get_inbox_counts vs list_conversations both surface handed-off conversations, which could occasionally be confused.
Strong, predictable pattern: list_* for collections and get_* for single-object or aggregate reads (get_site/get_desk/get_conversation/get_analytics_overview/get_inbox_counts). A couple of aggregates use get_ with plural nouns and get_desk_embed returns markup rather than a resource, but nothing breaks the convention.
17 tools is slightly above the comfortable band but each maps to a real sub-resource of a multi-tenant chat platform (sites, desks, questions, conversations, visitors, bookings, schedules, skills, sources, analytics). No obvious filler tools; the count is defensible for the breadth of the domain.
Read coverage is broad and consistent, including analytics, inbox counts and embed snippet, but the surface is entirely read-only: there is no way to create/update desks, skills, sources or schedules, and no tool to act on a waiting conversation beyond counting it. Single-resource reads are also missing for skills, sources and bookings, leaving agents to work from list output.
Available Tools
17 toolsget_analytics_overviewGet analytics overviewARead-onlyInspect
Reads one website's performance for a time window: chats, bookings, funnel, containment and deflection rates, CSAT, escalations and token use, each with the change against the previous window. Counts only conversations where the visitor did something.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| range | No | Window, compared with the one before it. | 30d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, non-destructive, closed-world behavior, so the description is free to add real value: it discloses the comparison-to-previous-window semantics and the filtering rule that only conversations with visitor activity are counted. It stops short of noting any latency, rate limits, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the resource and scope come first and the counting caveat is appended as a qualifier rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the metrics returned (chats, bookings, funnel, containment/deflection, CSAT, escalations, token use) plus the delta-versus-previous-period behavior, which is enough for an agent to know what it gets back; the exact response shape is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented (including the site-id pointer to list_sites and the range enum with its prior-window comparison). The description restates the time-window concept without adding format or edge-case detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reads) and resource (one website's performance over a time window) and enumerates the exact metrics returned, so an agent can distinguish this from conversation- or visitor-level siblings at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the metric list, and the scope note ("counts only conversations where the visitor did something") hints at the right context, but the description never says when to prefer this over get_inbox_counts or list_conversations, nor names any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversationGet conversationARead-onlyInspect
Reads one conversation with its messages, labels, booker details and intake answers.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| conversation_id | Yes | A conversation id from list_conversations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe read-only, non-destructive operation. The description adds useful context by naming the related data included in the result—messages, labels, booker details, and intake answers—though it does not mention error behavior or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no redundant or filler content. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with full schema descriptions and clear read-only annotations, the description is largely complete and helpfully lists returned data despite there being no output schema. Minor gaps around failure behavior remain but are not critical for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters, including that conversation_id comes from list_conversations and site comes from list_sites. The description adds no parameter-specific detail beyond that baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: reads one conversation. It also lists the associated data returned, making it clearly distinct from list_conversations and other get_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The singular 'one conversation' implies usage when a specific conversation is needed, but the description never explicitly says when to use this instead of list_conversations or other retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deskGet deskBRead-onlyInspect
Reads one desk's full configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| desk_id | Yes | A desk id from list_desks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that the full configuration (not a partial view) is returned, but says nothing about permissions, scoping, or response shape beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler and no restated boilerplate. It is arguably underspecified rather than padded, so it loses a point only for being too thin to carry usage or behavioral context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not characterize what the returned configuration contains or whether it is paginated/truncated. For a simple two-parameter read tool with full annotation and schema coverage this is minimally adequate, but it leaves the agent to discover the payload shape by calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: site is explained as a site id from list_sites that overrides the connection default, and desk_id as coming from list_desks. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ("Reads") plus resource ("one desk's full configuration"), so the agent can tell it retrieves a single desk object rather than a list. It does not, however, distinguish itself from sibling get_desk_embed, which an agent must infer from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: a single-desk read obviously follows list_desks, and the schema's desk_id description names list_desks as the source. There is no explicit when-to-use / when-not-to-use statement, and no mention of get_desk_embed as the alternative for embed scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_desk_embedGet desk embedARead-onlyInspect
Returns the tag that puts a desk's chat widget on a website, for pasting before .
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| desk_id | Yes | A desk id from list_desks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds valuable context beyond annotations by specifying the return payload shape (a script tag) and its intended placement, which is the key behavioral detail for a no-output-schema tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with zero filler, front-loading what is returned and then how to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully explains the returned value and placement. It omits noting the optional site parameter's effect, but the schema fully covers that, leaving only a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, documenting both desk_id and the optional site override, so the schema carries semantics. The description adds nothing about parameters, which is a correct baseline-3 situation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: returns the `<script>` tag for a desk's chat widget. This clearly distinguishes it from get_desk (which presumably returns desk metadata) and the list_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage context implicitly via 'for pasting before </body>', which tells the agent what to do with the output. However, it names no alternatives and gives no explicit when-to-use versus get_desk or conditional guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inbox_countsGet inbox countsBRead-onlyInspect
Counts conversations handed off to a person and waiting for a reply.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, non-destructive, and closed-world, so the safety profile is covered. The description adds useful domain scope by specifying that it counts handed-off conversations awaiting a reply, but it does not add details about permissions, rate limits, or response shape beyond what annotations and the name imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It immediately communicates the counted subset of conversations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only count tool with one optional fully documented parameter and annotations covering safety, the description is largely complete. It could say more about the exact return shape, but the name and sentence sufficiently imply that it returns counts of waiting handed-off conversations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single optional site parameter is fully documented in the schema. The description does not add parameter-specific meaning, which is acceptable here because the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it counts conversations that were handed off to a person and are waiting for a reply. This is clearly distinct from general conversation listing tools, though it does not explicitly name or distinguish itself from siblings such as get_analytics_overview or list_conversations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the metric being counted but gives no explicit guidance on when to use this tool versus alternatives. It also provides no exclusions or prerequisites, leaving the agent to infer usage from the name and sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduleGet scheduleBRead-onlyInspect
Reads one availability schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule_id | Yes | A schedule id from list_schedules. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond restating that it reads data, such as error behavior, return shape, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. For a simple one-parameter read tool, it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with full schema coverage and annotations covering safety, the description is nearly complete. It could mention what a schedule contains or reference list_schedules, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself explains that schedule_id comes from list_schedules. The description adds no parameter meaning beyond this, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Reads one availability schedule.' The singular 'one' distinguishes it reasonably from the sibling list_schedules, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives no explicit guidance on when to use this tool versus list_schedules or other get_* siblings. Usage is only implied by the word 'one' and the required schedule_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_siteGet siteARead-onlyInspect
Reads one website's settings: name, timezone, brand colour, greeting, budget and onboarding state.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive and closed-world, so safety is covered. The description earns credit for disclosing what the call actually returns (name, timezone, brand colour, greeting, budget, onboarding state), which annotations cannot convey and no output schema supplies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, and every listed field is informative rather than filler. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, enumerating the returned fields is exactly the right compensation, and the only parameter is fully documented in the schema. A brief note on what happens when no site is supplied (connection default) would close the last gap, though the schema implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter with 100% schema description coverage, including its default-behavior semantics ('instead of the connection default'), so the schema carries the load. The description adds nothing about the optional site argument; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Reads') and a precise resource ('one website's settings'), and enumerates the settings returned, which distinguishes it from list_sites by cardinality. It stops short of naming list_sites as the sibling, but 'one website's' makes the scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The single-site scope implies the usage (fetch settings for one known site) but gives no explicit when/when-not or alternative. The pointers to list_sites appear only in the schema, not the description, so routing guidance is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_visitorGet visitorARead-onlyInspect
Reads one visitor: email, name, first and last seen, conversation count.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| visitor_id | Yes | A visitor id from list_visitors. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description earns credit for disclosing the returned payload (email, name, first/last seen, conversation count), which matters because there is no output schema. It stops short of saying what happens for an unknown visitor id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the verb and resource lead and the field list follows immediately. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two fully documented parameters, complete annotations, and a description that enumerates the return payload in lieu of an output schema, an agent has what it needs to call this correctly. Only error/not-found behavior is unaddressed, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the useful pointer that visitor_id comes from list_visitors and that site overrides the connection default. The description adds nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Reads one visitor') and enumerates the fields returned, so the agent knows this is a single-record fetch rather than a listing. The singular 'one visitor' implicitly contrasts with the sibling list_visitors, but the contrast is never made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the visitor_id schema description points to list_visitors as the source of the id, which hints at the lookup-then-fetch flow. There is no explicit statement of when to use this versus list_visitors, nor any prerequisite or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bookingsList bookingsARead-onlyInspect
Lists bookings, latest start first, with attendee, time, status, desk and the conversation it came from.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| limit | No | Rows to return, newest first. | |
| offset | No | Rows to skip; use next_offset from the previous page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile needs no repeating. The description adds genuinely new context: the sort order ('latest start first') and the fact that each row carries attendee, time, status, desk and originating conversation — useful because there is no output schema. It stops short of noting pagination behavior or result-size expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler; the resource and the ordering are front-loaded and the field inventory follows as a compact trailing list. Nothing would be lost by keeping it exactly this length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields, and pagination is fully handled in the schema, so an agent has what it needs to call this correctly. A note on whether results are scoped to the site parameter or whether totals/paging end state is returned would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — site, limit and offset are each documented in the schema, including the guidance to reuse next_offset. The description adds only the ordering, which loosely reinforces limit's 'newest first' but supplies no parameter detail of its own. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists bookings') plus the default ordering ('latest start first') and the fields returned, which is well beyond a restatement of the name. It does not, however, contrast itself with any sibling (e.g. get_conversation, list_conversations) the way the strongest definitions do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name and ordering hint — an agent can infer this is the enumeration tool for bookings versus the singular getters in the sibling list. There is no explicit when/when-not statement, no mention of filtering trade-offs, and no pointer to an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsList conversationsARead-onlyInspect
Lists conversations where the visitor did something, latest activity first, with status, booker and labels.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Matches booker name, email, or a conversation number. | |
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| limit | No | Rows to return, newest first. | |
| offset | No | Rows to skip; use next_offset from the previous page. | |
| status | No | ||
| desk_id | No | Only this desk's conversations. | |
| visitor_id | No | Only this visitor's conversations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine context beyond that: the sort order (latest activity first) and the fields surfaced per row (status, booker, labels), which matters since there is no output schema. It does not explain what 'did something' means operationally or how paging behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the verb, the scope, the ordering and the returned fields. No wasted clauses, though its compactness comes at the cost of leaving ordering/pagination detail implicit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, zero-required read tool with strong annotation coverage and a well-described schema, the description covers purpose, scope, ordering and returned fields. The remaining gap is routing guidance against get_conversation and the absence of any hint about pagination or result volume, but nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so all significant parameters (q, site, limit, offset, desk_id, visitor_id) are already documented in the schema. The description only echoes 'status, booker and labels' and adds no filter syntax, defaults, or interaction rules beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists conversations') plus a scoping condition ('where the visitor did something') that separates it from merely browsing all visitors. It is clearly distinct from the singular get_conversation, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'where the visitor did something' hints at which conversations are included, and 'latest activity first' implies a browsing/listing use case. There is no explicit when-to-use versus get_conversation or list_visitors, and no stated exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_desk_questionsList desk questionsBRead-onlyInspect
Lists a desk's intake questions in order, with type, choices, branching and whether each is required.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| desk_id | Yes | A desk id from list_desks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint and destructiveHint annotations already establish the safety profile. The description adds useful context beyond annotations by naming the returned fields (type, choices, branching, required) and stating items are 'in order', which matters because there is no output schema. It does not cover pagination, empty results, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words. It is front-loaded with the action and resource, and the returned-field details are compactly appended.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full param coverage and annotations, the description is nearly complete. It compensates for the missing output schema by enumerating the returned fields and ordering, though it omits pagination or empty-result behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, including the site override and desk_id reference. The description does not add any parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lists') and resource ('a desk's intake questions') and adds the ordering and returned field set. It doesn't explicitly differentiate from siblings like get_desk or list_desks, but the resource is clearly narrower than those, so an agent can tell it apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no mention of alternatives, and no prerequisites or exclusions. Usage is only implied by the name and resource being listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_desksList desksARead-onlyInspect
Lists desks (the AI front desks on a website) with persona, greeting, whether they are live, and linked sources, skills and booking setup.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| limit | No | Rows to return, newest first. | |
| offset | No | Rows to skip; use next_offset from the previous page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safe-read profile is covered. The description adds the field inventory (persona, greeting, live status, linked sources/skills/booking) but says nothing about ordering, pagination behavior, or whether results are scoped to all sites or one.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the resource definition comes before the field list. Slightly run-on in enumerating fields, but every clause is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so enumerating the returned fields (persona, greeting, live status, linked sources/skills, booking setup) usefully tells the agent what to expect back. Combined with a fully documented input schema and read-only annotations, the definition covers what an agent needs, though ordering and cross-site behavior could have been stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (site, limit, offset) carry explicit descriptions including defaults and bounds, so the schema does the heavy lifting. The description adds no parameter meaning beyond that; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Lists') plus resource ('desks'), with a parenthetical defining what a desk is ('the AI front desks on a website'), which disambiguates the otherwise ambiguous term. It does not explicitly contrast with the sibling get_desk, so sibling differentiation is only implied by the list/get distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The listing nature implies when to use it, and the schema's 'site' parameter points to list_sites, but the description itself never says when to use this versus get_desk, nor does it mention paging through large result sets or handling multiple sites. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedulesList schedulesARead-onlyInspect
Lists the account's availability schedules (shared by all websites): name, timezone, country, default flag.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely non-obvious context beyond that: these schedules are account-level and shared by all websites, meaning there is no per-site filtering to worry about, and it names the fields returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no waste: scope and sharing semantics come first, then the returned fields. Every clause carries information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations covering the safety profile, the definition is nearly complete. The field enumeration compensates for the missing output schema. Minor gaps remain: no mention of ordering, pagination, or whether inactive schedules are included.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies there is nothing to filter or configure, consistent with the empty NoInput schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lists) and resource (availability schedules), and adds scope detail: they belong to the account and are shared across all websites. It also enumerates returned fields. It does not explicitly distinguish itself from the sibling get_schedule, though the list/singular contrast is inferable from names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Lists' plus the account-wide scope suggests this is for enumerating all schedules rather than fetching one. There is no explicit 'use this when' statement and no named alternative such as get_schedule for single-schedule retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sitesList sitesARead-onlyInspect
Lists the websites (sites) this connection can act on: id, name, slug and whether it is active. Every desk, conversation, visitor and booking belongs to one site. Pass an id as the site argument on any other tool to run that call on that website; without one, tools read across all of them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, non-destructive, closed-world), so the description correctly spends its words elsewhere: it discloses the cross-site default scope of other tools and the data model (everything belongs to one site). That's real context an agent couldn't infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what it does, then the data-model context, then the actionable guidance. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming the returned fields. Combined with the scope guidance, an agent has everything needed to call it correctly and use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. The description uses the space to explain how the values returned here feed the site argument on other tools, which is meaningfully useful even though it isn't describing this tool's own (empty) input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists the websites (sites) this connection can act on') and even enumerates the returned fields (id, name, slug, active). This clearly separates it from the singular get_site sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the downstream use: pass an id as the site argument on any other tool, and without one tools read across all sites. It doesn't explicitly contrast with get_site, but the routing guidance is concrete and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_skillsList skillsARead-onlyInspect
Lists the account's skills (reusable instructions and tool sets desks can use), most recently updated first.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one genuinely new behavioral fact — results come back 'most recently updated first' — but says nothing about result volume, truncation, or whether the account-wide listing can be empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the resource front-loaded, the definitional parenthetical placed where it helps most, and the sort order appended last. No filler, nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, non-destructive list tool with no output schema, the description covers what is listed and in what order. The only meaningful gap is whether the list is complete or paginated, which matters slightly for an account-wide enumeration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The parenthetical defining 'skills' is a small bonus not found in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (the account's skills) and even clarifies what a skill is — 'reusable instructions and tool sets desks can use'. That's clear enough to pick over the get_* siblings, though it never explicitly contrasts itself with any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given; the usage is only implied by the 'list skills' framing and the absence of a skill-scoped alternative among the siblings. An agent can infer it, but nothing in the text routes it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesList sourcesARead-onlyInspect
Lists a website's knowledge sources (the pages its desks answer from), most recently updated first, with their text.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| limit | No | Rows to return, newest first. | |
| offset | No | Rows to skip; use next_offset from the previous page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description usefully adds the sort order (most recently updated first) and that source text is returned, but says nothing about result volume or what a source record looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the resource definition, then ordering, then payload. No filler, nothing repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, fully documented, non-nested list tool with no output schema, the description covers resource, ordering, and that text comes back. Slightly thin only on pagination expectations, which the offset/limit descriptions already handle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with site, limit, and offset each documented including the next_offset idiom, so the baseline is 3. The description only restates 'website's' and 'most recently updated first'; it adds no syntax or edge-case detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lists a website's knowledge sources') and even defines the resource parenthetically as the pages its desks answer from, plus the ordering and that text is included. It is clearly distinct from list_desks/list_sites/list_skills, though it never explicitly acknowledges those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the read path for a site's knowledge sources, and the schema's 'site' description points at list_sites for the id. There is no statement of when to prefer this over other list tools or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_visitorsList visitorsARead-onlyInspect
Lists visitors who have chatted, most recently seen first, with email, name and conversation count.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Matches email or name. | |
| site | No | A site id from list_sites. Runs this call on that website instead of the connection default. | |
| limit | No | Rows to return, newest first. | |
| offset | No | Rows to skip; use next_offset from the previous page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, non-destructive operation. The description adds useful behavioral context beyond them: it filters to visitors who have chatted, defines the sort order, and names the returned fields. It stops short of covering pagination behavior, but the schema handles that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single efficient sentence. It front-loads the core action and scope, then adds ordering and return fields without any redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description supplies enough context by naming the fields returned and the order. Parameter documentation and safety are covered by the schema and annotations, leaving only minor room for richer guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the meaning of q, site, limit, and offset is already fully documented in the schema. The description adds no parameter-specific guidance beyond what is structured, which meets the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lists') and resource ('visitors'), plus meaningful scope: only visitors who have chatted. It also names the sort order and returned fields, making it easy to distinguish from get_visitor and unrelated list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Lists visitors who have chatted' and the ordering/field details, but there is no explicit when-to-use guidance or comparison to alternatives such as get_visitor. An agent can infer the purpose but must decide on its own when this list view is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
- First observed
get_analytics_overview - First observed
get_conversation - First observed
get_desk - First observed
get_desk_embed - First observed
get_inbox_counts - First observed
get_schedule - First observed
get_site - First observed
get_visitor - First observed
list_bookings - First observed
list_conversations - First observed
list_desk_questions - First observed
list_desks - First observed
list_schedules - First observed
list_sites - First observed
list_skills - First observed
list_sources - First observed
list_visitors
Related MCP Connectors
AI receptionist and AI chatbot: inbox triage, reply drafts, leads, reports, and knowledge training.
AI support employee for any website: learns the site, answers visitors by chat and voice.
Run your website's AI support agent: knowledge, conversations, leads and live replies.
Build a customer support AI agent from your website, then analyze conversations and improve it.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables AI assistants to call, text, and email businesses on your behalf, read back transcripts, recordings, and replies.51 npmMIT- AlicenseNot gradedqualityBmaintenanceEnables voice-driven front desk operations and after-hours triage for dental clinics, allowing assistants to handle appointments, patient info, and symptom checks using the clinic's own protocols.MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to answer a small business's customer questions from its own FAQs and order data, list upcoming open appointment times in the business's time zone, and book one of those offered slots with staff notification. Free for the first 1,000 businesses, using fast rule-based FAQ matching rather than free-form generation.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage a customer-support inbox with guardrails, including replying safely, handling escalations, and leveraging upsell opportunities for e-commerce stores.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.