Goptin
Server Details
One server for all your work accounts: read and send Slack, Teams, Google Chat messages and Jira/ClickUp tickets.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 13 tools
Each tool targets a distinct resource+action: conversations (list/read/search/send), tickets (list/get/comment/update), tasks (list/create/complete), accounts, and digest. The only mild friction is the task-vs-ticket family (list_tasks vs list_tickets, complete_task vs update_ticket), but the descriptions draw a clear line between private to-dos and Jira/ClickUp tickets.
All 13 tools follow a strict snake_case verb_noun pattern (list_accounts, get_ticket, send_message, update_ticket), with consistent use of list/get/read/create/update/complete/search verbs. No style mixing or ad-hoc naming.
13 tools sits comfortably in the well-scoped range, and each one maps to a real operation (read inbox, act on tickets, manage tasks, check digest). No obviously redundant or filler tools.
Inbox and ticket reading/writing are well covered, but the surface has notable holes: no create_ticket, no update/delete/rename for tasks (only complete/reopen), and no conversation management beyond list/read/send. Agents will hit dead ends for common workflows like filing a new ticket or editing a task.
Available Tools
13 toolscomment_ticketAInspect
Post a comment on a Jira/ClickUp ticket as the user. The team sees it — show the exact text to the user and confirm first.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| ticket_id | No | ticket_id (ClickUp) or key (Jira) from list_tickets | |
| account_id | No | The board's account_id from list_tickets (use with ticket_id) | |
| conversation_id | No | The ticket's conversation_id from list_tickets (when it has one) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write nature is known. The description adds genuinely non-structured behavior: the comment is posted under the user's identity and is visible to the whole team, which is the key risk an agent must convey before acting. It stops short of saying whether comments can be edited or deleted after posting.
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 sentences, zero waste, and the action is front-loaded ahead of the safety instruction. Every clause carries information the agent needs.
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 four-parameter write tool with no output schema and annotations covering the safety profile, the description covers identity, audience, and the confirmation gate. The only gap is which identifier combination to use per platform, which the schema partially handles.
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 coverage is 75% and ticket_id, account_id, and conversation_id are already documented as coming from list_tickets. The description only implicitly clarifies that 'text' is the comment body and reinforces that its contents become team-visible; it adds no guidance on when to supply conversation_id versus ticket_id + account_id.
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 ('Post a comment') plus specific resource ('Jira/ClickUp ticket'), with the explicit attribution qualifier 'as the user'. An agent can distinguish this from update_ticket (edits the ticket) and send_message (chat messaging) without opening any schema.
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?
Gives a concrete pre-invocation workflow: show the exact text to the user and get confirmation before calling. That is clear usage context, but it never references the alternative tools (update_ticket for edits, send_message for chat) or states when not to comment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskAInspect
Mark a Goptin task done (or reopen it with done=false). ClickUp-linked tasks are updated in ClickUp too.
| Name | Required | Description | Default |
|---|---|---|---|
| done | No | false reopens the task (default true) | |
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only mutation with openWorldHint=true, and the description earns credit beyond that by disclosing the cross-system side effect: ClickUp-linked tasks are also updated in ClickUp. It stops short of describing idempotency, failure behavior on missing tasks, or what is returned, which keeps it below a 5.
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 short sentences, front-loaded with the primary action and immediately followed by the inverse-mode and side-effect caveats. Nothing is padded or repeated.
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 two-parameter mutation with no output schema, the essentials are present, but an agent still cannot tell what the call returns, how errors surface for an invalid task_id, or whether the ClickUp propagation can fail independently. These gaps matter more because annotations mark it openWorldHint.
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?
At 50% schema coverage, task_id is undocumented anywhere — the description does not say whether it expects an internal ID, a ClickUp ID, or a name. The done parameter's meaning in the description merely restates the schema's own "false reopens the task (default true)" note, adding no format or edge-case detail.
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 ("Mark a Goptin task done") plus the inverse operation ("reopen it with done=false"). No sibling in the list does task completion, so an agent can distinguish it from create_task or list_tasks without inspecting the schema.
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 makes the when-to-use condition implied by the verb clear (finish or reopen a task) and documents the reopen path. However, it gives no explicit exclusions or alternatives — nothing about what to do for ClickUp-only tasks, unknown task IDs, or whether reopening resets any state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskAInspect
Add a task to the user's Goptin to-do list (private to the user, nothing is sent to anyone).
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| title | Yes | Short imperative, e.g. "Send the quote to Minh" | |
| due_date | No | YYYY-MM-DD | |
| conversation_id | No | Link the task to the conversation it came from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only but non-destructive, non-open-world write, so the safety profile is covered. The description adds genuinely new behavioral context that no annotation provides: the task is private to the user and no notification is sent to anyone. It stops short of saying whether duplicates are created or what identifier comes back.
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 compact sentence with the action front-loaded and a short parenthetical clarifying privacy. Nothing is wasted, though the parenthetical slightly interrupts the core statement rather than being a second clean clause.
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 four-parameter creation tool with annotations and no output schema, the description is adequate but thin. It omits what a caller receives back (for example a task identifier needed to later call complete_task) and does not mention any duplicate-handling 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 coverage is 75% and the schema already documents title, due_date format, and the purpose of conversation_id. The description adds nothing parameter-level, but with a high-coverage schema that is acceptable: the structured fields do the work and the description does not muddy them.
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 plus resource and destination: "Add a task to the user's Goptin to-do list." That is enough to separate it from list_tasks and complete_task, though it never names those siblings explicitly, so the differentiation is inferred rather than stated.
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?
When to use this tool is only implied: if the user wants something remembered, add a task rather than a message or ticket. There is no explicit statement about when not to use it, no mention of alternatives such as complete_task or update_ticket, and no prerequisites called out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_digestARead-onlyInspect
Read the user's latest daily digest (one per workspace): a summary of the last 24h across all accounts, tasks due today/overdue, high-priority tickets, and conversations waiting for the user's reply. Start the day here.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true; the description adds meaningful behavior beyond that: it is the 'latest' digest, one per workspace, and covers a rolling 24h window plus due/overdue and awaiting-reply items. It does not say what happens when no digest exists or how stale 'latest' can be.
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 tightly written sentences: the main purpose and contents come first, and the short 'Start the day here' directive earns its place as usage guidance. No filler.
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 and no parameters, the description carries the full burden of explaining the return value, and it does so by enumerating the digest's sections. Minor gap: 'one per workspace' is ambiguous about which workspace's digest is returned when no identifier is supplied, and empty/error behavior is unstated.
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 are zero parameters, so the baseline is 4. The description appropriately focuses on what the tool returns rather than on input semantics.
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 (read) and resource (latest daily digest) and enumerates the digest's contents: 24h summary across accounts, tasks due/overdue, high-priority tickets, and conversations awaiting reply. This distinguishes it in substance from sibling list_* tools, though it does not name a 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?
'Start the day here' gives a clear usage context (beginning of a session/day) and implies this should be consulted before drilling into individual list tools. No explicit when-not-to-use or named alternatives, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticketARead-onlyInspect
Get one ticket's live details plus its comment thread. Takes the conversation_id from list_tickets.
| Name | Required | Description | Default |
|---|---|---|---|
| comment_limit | No | Default 20, max 100 | |
| conversation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description's added value is limited to the 'live' freshness implication and the fact that a comment thread is included. It stays silent on pagination/truncation of comments beyond the schema's max, and on ordering or failure behavior for a bad 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?
Two short sentences with no filler; the payload scope comes first and the ID-source hint second, which is the right order for an agent deciding whether to call 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 does the minimum required by naming the return content (details + comment thread) and the ID provenance. It is slightly thin on how the thread is bounded and what 'live' concretely means, but nothing blocks a correct call.
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?
comment_limit is documented in the schema (default 20, max 100), and the description usefully clarifies that conversation_id is an ID sourced from list_tickets and refers to a ticket/conversation. That partially compensates for the 50% schema coverage, though the format of conversation_id itself still isn't stated.
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 and resource ('Get one ticket') plus an explicit payload note ('live details plus its comment thread'), which sets it apart from the bulk sibling list_tickets. It doesn't distinguish itself from read_conversation, which on name alone sounds like it could return the same thread, so differentiation is only partial.
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?
'Takes the conversation_id from list_tickets' gives a usable workflow prerequisite, implying this is the drill-down after a list call. There is no explicit statement of when to prefer this over read_conversation or search_messages, so the selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsARead-onlyInspect
List every account the user has connected to Goptin (several per channel is normal). Call this first to pick the right account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read. The description adds a useful behavioral detail — results are commonly plural, one or more per channel — but says nothing about pagination, result shape, or what an 'account' record contains.
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 short sentences, zero filler. The multiplicity caveat is front-loaded before the sequencing instruction, which is the right order for the reader.
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 a read-only annotation, the surface area needing explanation is small, and the description covers purpose and call ordering. It could say a bit more about what identifying fields an account record has, since there's no output schema to fall back on.
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; there is nothing for the description to disambiguate. The note about multiple accounts per channel adds expectation-setting that the empty schema cannot convey.
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 ('List every account the user has connected to Goptin') and clarifies cardinality ('several per channel is normal'). No sibling tool (get_ticket, list_conversations, send_message, etc.) does this, so the agent can distinguish it immediately.
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?
'Call this first to pick the right account' gives explicit ordering guidance that ties it to the rest of the workflow. It stops short of naming which sibling to use next or any exclusions, but the when-to-use signal is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsARead-onlyInspect
List recent inbox conversations (DMs, groups, channels, ticket threads), newest first, across all or one account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20, max 50) | |
| query | No | Filter by title or last-message text | |
| before | No | ISO date: page back to conversations active before this time | |
| account | No | Which connected account to use: an account_id from list_accounts, or part of its name (e.g. "EverydAI", "Zalo shop"). Omit to search all accounts. | |
| channel | No | Restrict to one channel: slack, msteams, googlechat, jira, clickup, telegram, zalo, gmail, facebook, instagram. | |
| unread_only | No | Only conversations with unread messages or unread @mentions | |
| include_hidden | No | Also include conversations the user hid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, and the description usefully adds the default ordering ('newest first') and the cross-account default scope. It says nothing about result truncation, the 50-item ceiling behaviour, or how the 'before' cursor interacts with ordering, which is the main behavioral risk when paging.
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 verb and resource, then packs scope and ordering into one parenthetical. No wasted words and nothing important 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?
For a read-only, zero-required-parameter list tool with a fully documented schema and no output schema, the description covers what is listed, ordering, and account scope. The remaining gap is pagination semantics (how 'before' interacts with newest-first ordering and the 50-result cap), which an agent paging results would want.
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 every parameter (limit, query, before, account, channel, unread_only, include_hidden) is already documented in the schema with defaults and allowed values. The description only restates the account scope axis and adds no format or interaction detail beyond structured fields, 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 ('List recent inbox conversations') and enumerates the conversation types covered (DMs, groups, channels, ticket threads), which clearly separates it from read_conversation or get_ticket. It does not explicitly name a sibling it supersedes or defers to, so the differentiation is implied rather than stated.
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 establishes this as the browsing/listing entry point ('recent', 'newest first'), which implies when to reach for it, but never says when to use search_messages instead for text search or read_conversation for a single thread. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksARead-onlyInspect
List the user's Goptin to-do list (manual, AI-extracted and ClickUp-synced tasks). Open tasks by default.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 50, max 200 | |
| include_done | No | Also include completed tasks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the useful default-filter behavior (open tasks only), but says nothing about ordering, pagination behavior when limit is exceeded, or result shape.
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 short sentences with zero filler; the resource and the default filter are front-loaded, and everything stated 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 two-parameter read tool with annotations covering safety and a fully documented schema, this is close to complete. Only minor gaps remain (ordering, return shape), and with no output schema the omission of return details is a small deduction rather than a failure.
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 coverage is 100%, so both parameters are already documented with defaults and maximums. The description's 'Open tasks by default' contextualizes include_done but adds no syntax or format detail beyond the schema, matching 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 opens with a specific verb and resource ('List the user's Goptin to-do list') and clarifies the three included task sources (manual, AI-extracted, ClickUp-synced). No sibling tool offers an alternative task listing, so differentiation is largely moot, but the scope is 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?
It states the default behavior ('Open tasks by default'), which implies when completed tasks appear, but gives no explicit when-to-use versus alternatives or prerequisites. With no competing list tool among siblings, implied guidance is arguably sufficient, though an explicit note about when to set include_done would be stronger.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ticketsARead-onlyInspect
List the user's own tickets live from Jira / ClickUp, grouped by the provider's statuses (open ones by default).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Only statuses whose name contains this text | |
| account | No | Which connected account to use: an account_id from list_accounts, or part of its name (e.g. "EverydAI", "Zalo shop"). Omit to search all accounts. | |
| channel | No | ||
| include_done | No | Include completed statuses |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=true already covering safety, the description adds useful behavior: data is fetched live, results are grouped by provider statuses, and the default is open tickets only. It does not disclose pagination, rate limits, per-account auth requirements, or what a ticket record contains.
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 the source, ownership scope, grouping, and default all packed in without wasted words. Every clause 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 four-parameter, no-output-schema list tool, the description covers the data source and grouping but omits return shape details beyond grouping, pagination behavior, and how account scope interacts with results. Adequate but with clear gaps.
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 coverage is 75%, so the schema already explains status matching, account selection, channel enum, and include_done. The description adds only the default-open behavior, which implicitly relates to include_done, but it doesn't clarify the account or status filter semantics beyond what the schema provides.
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 ('List the user's own tickets') and names the sources ('live from Jira / ClickUp'), which is enough to distinguish it from the singular sibling get_ticket. It doesn't explicitly contrast itself with list_accounts or the conversation tools, so it stops short of a 5.
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 'list' and by the default 'open ones', but the description never states when to choose this over get_ticket for a single ticket or when to broaden with include_done. No explicit alternatives or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_conversationARead-onlyInspect
Read the messages of one conversation, oldest first. Use before with the earliest sent_at to page back.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 30, max 100 | |
| before | No | ISO date: only messages sent before this time | |
| conversation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds useful behavioral context by disclosing ordering (oldest first) and backward pagination, but it does not mention return shape, rate limits, or other operational constraints.
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 short sentences are front-loaded with the core action and a concrete paging instruction. Every sentence adds useful signal with no filler.
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 tool with no output schema, the description covers purpose, ordering, and pagination sufficiently. It could say more about the returned message structure, but the missing detail is minor for this low-complexity operation.
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 coverage is 67%, and the description adds meaning for `before` by explaining how to use it with the earliest sent_at for paging. It does not clarify `limit` behavior beyond the schema, and `conversation_id` is self-explanatory.
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: read messages of one conversation. It also clarifies ordering (oldest first), which distinguishes it from broader sibling tools like list_conversations or search_messages, though it does not explicitly name alternatives.
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 clear pagination guidance: use `before` with the earliest sent_at to page back. However, it does not explain when to use this tool versus search_messages or list_conversations, so usage is implied rather than fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_messagesBRead-onlyInspect
Full-text search over stored messages across all or one account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 20, max 50 | |
| query | Yes | ||
| account | No | Which connected account to use: an account_id from list_accounts, or part of its name (e.g. "EverydAI", "Zalo shop"). Omit to search all accounts. | |
| channel | No | Restrict to one channel: slack, msteams, googlechat, jira, clickup, telegram, zalo, gmail, facebook, instagram. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds search scope and full-text matching context, but it does not describe result ordering, pagination, rate limits, or which message fields are searched.
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 is appropriately sized for a simple search tool.
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 search tool with annotated safety and mostly documented parameters, the description is minimally complete enough to invoke. It still leaves out result behavior and sibling selection guidance, but no output schema exists to carry that burden.
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 75%, and the account, channel, and limit parameters are already documented in the schema. The description echoes account scope but does not add query syntax, even though the required query parameter has no schema description of its own.
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 ('Full-text search') and resource ('stored messages') plus scope ('across all or one account'), so an agent can tell it is a search operation. It does not explicitly name or differentiate against siblings such as list_conversations or read_conversation, which keeps it from a 5.
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, when-not-to-use guidance, or named alternative tool. An agent must infer that this is for text queries rather than listing or reading conversations, so the guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageAInspect
Send a message as the user into an existing conversation, through the account that conversation belongs to. This really delivers to the other person — confirm the text with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| thread_id | No | Reply inside a thread (thread_id from read_conversation) | |
| conversation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true — which could lead an agent to underestimate the impact. The description adds the crucial disclosure that this 'really delivers to the other person', i.e. an irreversible external side effect, plus the sending identity and account routing. That is exactly the value-add the annotations cannot provide.
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 short sentences with zero filler; the delivery/impact warning is placed where it will be read before the confirmation requirement, which is the right ordering for a consequential action.
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 3-param mutation tool with no output schema and open-world reach, the description covers identity, target scope, real-world effect, and a safety precondition. What's missing is minor: return value (message id) and the source of conversation_id, both of which an agent could infer from siblings.
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 coverage is only 33% — only thread_id is documented, and the schema itself explains it. The description adds that conversation_id must reference an existing conversation and that text should be user-confirmed, but it never says where conversation_id comes from (e.g. list_conversations) or how thread replies behave. Partial compensation for a real gap.
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 (send), resource (a message), identity (as the user), and target (an existing conversation via its owning account). This clearly separates it from read-only siblings like read_conversation, search_messages, and list_conversations without needing to name them.
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?
Gives a concrete precondition ('confirm the text with the user first') and a scope constraint ('into an existing conversation'), which tells the agent this is not for starting new threads. It stops short of naming an alternative tool or explicitly saying when not to use it, so it falls just below the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_ticketAInspect
Change a Jira/ClickUp ticket: move it to another status (use a status name shown by list_tickets), set the due date, or replace the description. Changes are visible to the user's team — confirm with the user first.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Target status name, e.g. "qa approved" or "In Review" | |
| due_date | No | YYYY-MM-DD | |
| ticket_id | No | ticket_id (ClickUp) or key (Jira) from list_tickets | |
| account_id | No | The board's account_id from list_tickets (use with ticket_id) | |
| description | No | Replaces the whole description | |
| conversation_id | No | The ticket's conversation_id from list_tickets (when it has one) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-destructive, open-world mutation, so the bar is lower; the description earns credit by disclosing the social side effect ("changes are visible to the user's team") and the need to confirm first. It also warns that the description parameter replaces the entire body, which is meaningful destructive-in-practice context not conveyed by destructiveHint=false.
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 action verb, with the three capabilities listed compactly and the confirmation caution placed at the end where it is most visible. No redundant restatement of the title or name.
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 an open-world mutation with no output schema, the description covers the important safety and sourcing context. However, the schema shows zero required parameters, and the description never says what happens if the agent calls it with no fields set or how partial updates behave — a real ambiguity for a write tool.
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 coverage is 100%, so the baseline is 3. The description adds modest value by tying status to names returned by list_tickets and framing description as a whole replacement, but it does not explain whether omitted fields stay untouched or whether at least one field must be supplied.
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 names a specific verb+resource (change a Jira/ClickUp ticket) and enumerates the three concrete operations: status move, due date set, description replace. It is clearly distinguishable from siblings like get_ticket, comment_ticket, and list_tickets.
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 a real prerequisite ("use a status name shown by list_tickets") and a procedural caution ("confirm with the user first"). It does not explicitly exclude alternatives such as comment_ticket when the user wants to add a note rather than change fields, so it stops short of full when/when-not guidance.
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.
6 tool updates
- Added
comment_ticket - Added
complete_task - Added
create_task - Added
get_digest - Added
list_tasks - Added
update_ticket
7 tool updates
- First observed
get_ticket - First observed
list_accounts - First observed
list_conversations - First observed
list_tickets - First observed
read_conversation - First observed
search_messages - First observed
send_message
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm58 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.