Goptin
Server Details
One MCP server for all your work accounts: Slack, Teams, Google Chat chats and Jira/ClickUp tickets.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 7 tools
Each tool targets a distinct action or resource: listing accounts, conversations, or tickets; reading conversations or tickets; searching; and sending messages. The only mild overlap is that tickets can appear as conversation threads, but the descriptions clarify the boundary between list_tickets/get_ticket and list_conversations/read_conversation.
All tools use a consistent snake_case verb_noun pattern: get_ticket, list_accounts, list_conversations, list_tickets, read_conversation, search_messages, send_message. The verbs are predictable and reflect the operation being performed.
Seven tools is well-scoped for an inbox/ticket integration. Each tool has a clear role, and there are no redundant or filler tools.
The surface covers reading accounts, conversations, tickets, searching, and sending messages, but ticket operations are notably incomplete: there is no create_ticket, update_ticket, or ticket-status/comment operation. Messaging is also limited to sending into existing conversations, with no way to start a new conversation.
Available Tools
7 toolsget_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_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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
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 Connectors
Hosted Slack MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Unified inbox MCP for WhatsApp, Telegram, Email, voice — read/send messages, search, AI agents.
Unified messaging MCP server: WhatsApp, Instagram, Telegram, SMS, Messenger & email support inbox
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceA unified MCP server that provides OAuth-enabled integrations for multiple services through a single deployment. Currently supports Slack with 47 tools, with plans to expand to Gmail, Google Calendar, Notion, and 100+ other integrations.6MIT- AlicenseNot gradedqualityDmaintenanceUnified MCP server that integrates Jira, GitLab, and Confluence for AI assistants to access project management, code repositories, and documentation from a single interface.MIT
- AlicenseNot gradedqualityDmaintenanceGoogle Chat MCP server that lets AI assistants like Claude and Cursor participate directly in team conversations - search messages, help teammates, share files, and coordinate across chat platforms.27PythonMIT
- AlicenseNot gradedqualityCmaintenanceMCP server enabling AI agents to interact with workplace tools like GitHub, GitLab, Jira, Notion, and more via the Model Context Protocol.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.