Skip to main content
Glama

Server Details

MCP server for Ably — channel history, presence, occupancy, stats, publish, and app management.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 13 of 15 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action, with no overlap. Account stats and app stats are clearly differentiated by scope. Channel details, history, presence, and presence history are all separate operations.

Naming Consistency5/5

All tools follow the 'ably_verb_noun' pattern consistently (e.g., ably_get_account_stats, ably_list_channels, ably_publish_message). The only slight deviation is ably_whoami, which is a common single-word name, but it still fits the pattern.

Tool Count5/5

15 tools is well-scoped for a real-time messaging platform, covering both control plane (account/app management) and data plane operations. Each tool earns its place without feeling excessive or sparse.

Completeness2/5

The toolset is heavily read-only: it provides list/get operations for control plane resources (apps, keys, namespaces, queues, rules) but lacks create, update, or delete tools. Publishing is the only write operation. This is a significant gap for full lifecycle management.

Available Tools

15 tools
ably_get_account_statsGet account-level statisticsA
Read-only
Inspect

Retrieve aggregated usage statistics across the whole account, bucketed by time. Account id is resolved from the control token when ABLY_ACCOUNT_ID is unset. Control API: GET /accounts/{account_id}/stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd of range, ms since epoch (inclusive).
unitNoBucket size: minute | hour | day | month. Default minute.
limitNoMax buckets (<=1000). Default 100.
startNoStart of range, ms since epoch (inclusive).
account_idNoOverride the account id (defaults to the token's account).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the readOnlyHint annotation (Retrieve). It adds behavioral context about time-bucketed aggregation and account ID resolution, beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose. Every clause earns its place—no fluff. Efficiently covers key points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers the main inputs, account resolution, and API path. It doesn't explain return values or error handling, but for a stats tool with good schema, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good param descriptions. The description adds context: 'bucketed by time' ties to start/end/unit, and account_id default logic. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves aggregated usage statistics across the whole account, bucketed by time. The title and mention of 'account-level' distinguish it from sibling tools like ably_get_stats. The verb 'Retrieve' and resource 'account stats' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when the account_id defaults from the token and provides the API endpoint, giving context for usage. However, it does not explicitly compare with sibling tools or state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_get_channel_detailsGet channel details / occupancyA
Read-only
Inspect

Get status and occupancy metrics for a single channel (connections, publishers, subscribers, presence members). REST: GET /channels/{channel}.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesChannel name.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, so the description does not need to restate safety. The description adds the REST endpoint context and lists returned metrics, which is transparent. No destructive behaviors or contradictions are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence plus the REST endpoint. Every word is necessary, front-loading the purpose and return details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one param, read-only, no output schema), the description adequately explains what the tool returns. It covers the key metrics and endpoint, leaving no major gaps for a basic occupancy tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the only parameter 'channel' having a description. The description does not add meaning beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and description clearly state the verb 'Get' and the resource 'channel details / occupancy', listing specific metrics (connections, publishers, etc.). It easily distinguishes from siblings like 'ably_get_channel_history' or 'ably_get_presence' by focusing on occupancy and status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for retrieving current channel status and occupancy, but it does not explicitly state when to use this tool versus alternatives (e.g., 'ably_get_presence' for presence members only). There is no guidance on prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_get_channel_historyGet channel message historyA
Read-only
Inspect

Retrieve historical messages published to a channel, newest-first by default. REST: GET /channels/{channel}/messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoLatest message time, ms since epoch (inclusive).
limitNoMax messages (<=1000). Default 100.
startNoEarliest message time, ms since epoch (inclusive).
channelYesChannel name, e.g. 'chat:room1'.
directionNoforwards (oldest-first) or backwards (newest-first, default).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true. Description adds default ordering (newest-first) and REST path, but does not disclose pagination, error behavior, or rate limits. Adequate but minimal beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, concise and front-loaded with purpose. No superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a read-only list tool with full schema. No output schema, but description doesn't mention return format or pagination details. Completeness is reasonable but could briefly describe response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 5 parameters. Description adds no additional parameter explanation beyond what schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Retrieve' and resource 'historical messages published to a channel', with default ordering. Distinct from siblings like get_channel_details and get_presence which are different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides default direction but no explicit guidance on when to use this vs alternatives like get_presence_history or when not to use. Lacks context on prerequisites or filtering options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_get_presenceGet channel presence setA
Read-only
Inspect

List the members currently present on a channel (who is online now). REST: GET /channels/{channel}/presence.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax members (<=1000). Default 100.
channelYesChannel name.
clientIdNoFilter to a specific clientId.
connectionIdNoFilter to a specific connectionId.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint=true, which matches the read operation. Description adds behavioral context: informs that it returns current members, includes REST method. No contradictions. Adequately discloses behavior beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence describing purpose plus the REST endpoint. Every word is necessary; no redundant or verbose text. Front-loaded with key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with no output schema, the description provides enough context: it returns current members, supports filtering by client and connection, and mentions the limit. Would benefit from describing typical response fields, but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. Description does not add extra meaning beyond the schema (e.g., no clarification of defaults or usage hints). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List members currently present on a channel (who is online now).' Uses specific verb 'list' and resource 'members present on a channel'. Distinguishes from sibling 'ably_get_presence_history' by implying current state vs history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use or not use this tool. Context suggests it is for current presence, and siblings like get_presence_history are for historical data, but no direct comparison or alternative mention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_get_presence_historyGet channel presence historyA
Read-only
Inspect

Retrieve historical presence events (enter/leave/update) for a channel. REST: GET /channels/{channel}/presence/history.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoLatest event time, ms since epoch (inclusive).
limitNoMax events (<=1000). Default 100.
startNoEarliest event time, ms since epoch (inclusive).
channelYesChannel name.
directionNoforwards or backwards (default backwards).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true. Description adds REST endpoint details but no additional behavioral traits like pagination, rate limits, or response format. Adequate but minimal beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second provides REST endpoint. No extraneous information. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but parameter documentation is complete. Description could mention pagination or response structure, but given the simplicity and good schema coverage, it is sufficiently complete for selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 5 parameters with 100% description coverage. Description adds only implicit mapping of channel to URL path. Baseline of 3 is appropriate as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Retrieve' and the resource 'historical presence events (enter/leave/update) for a channel'. Distinguishes from siblings like ably_get_presence (current presence) and ably_get_channel_history (general messages).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for historical presence events but does not provide explicit when-to-use or alternative guidance. Sibling tools are listed but no comparison is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_get_service_timeGet Ably service timeA
Read-only
Inspect

Return the current Ably service time in ms since epoch. Useful for aligning start/end windows to the server clock. REST: GET /time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and the description adds that it returns time in ms since epoch and the REST endpoint. No contradictions; additional context about the return format is beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose and followed by a specific use case. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description clearly states the return value ('ms since epoch'), which is sufficient for this simple tool. Complete guidance for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to add parameter meaning. Baseline 4 applies with 100% schema coverage (trivially).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Return' and the resource 'current Ably service time in ms since epoch'. The description uniquely identifies the tool's purpose, distinguishing it from siblings that deal with accounts, channels, stats, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly suggests usage for aligning start/end windows to server clock. While no exclusions or alternatives are provided, the context is clear and actionable for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_get_statsGet app statisticsA
Read-only
Inspect

Retrieve message/connection/channel usage statistics for the app tied to the API key, bucketed by time. REST: GET /stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
endNoEnd of range, ms since epoch (inclusive).
unitNoBucket size: minute | hour | day | month. Default minute.
limitNoMax buckets (<=1000). Default 100.
startNoStart of range, ms since epoch (inclusive).
directionNoforwards or backwards (default backwards).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include readOnlyHint=true, so the description adds value by mentioning the REST endpoint ('GET /stats') and time bucketing. It does not contradict annotations. No destructive behavior is disclosed, but the read-only nature is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The first sentence states the purpose with key details, the second adds the REST method. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is sufficient for a read-only tool with good schema coverage but lacks explicit information about the output format or return values, which would be helpful since there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no additional meaning beyond 'bucketed by time,' which is already implied by the unit parameter. The description does not enhance understanding of individual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves message/connection/channel usage statistics for the app tied to the API key, bucketed by time. This distinguishes it from siblings like ably_get_account_stats which would be for account-level stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for the current app via 'app tied to the API key,' but does not explicitly state when to use this versus siblings like ably_get_account_stats or ably_get_channel_details. There is no guidance on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_list_appsList Ably appsA
Read-only
Inspect

List all apps in the account (id, name, status, tls-only). Account id is resolved automatically from the control token when ABLY_ACCOUNT_ID is unset. Control API: GET /accounts/{account_id}/apps.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idNoOverride the account id (defaults to the token's account).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description carries less burden. It adds value by explaining automatic account ID resolution and the Control API endpoint, clarifying behavior beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, front-loaded with purpose. Every sentence provides essential information, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description covers purpose, parameter behavior, and API reference. It sufficiently informs an AI agent about correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (account_id has a description). The description adds meaning by stating that account_id overrides the default and resolves automatically, supplementing the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'all apps in the account', specifying the fields returned (id, name, status, tls-only). It distinguishes from sibling tools by focusing on apps rather than channels, stats, or other resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use the tool (to list apps) and mentions automatic account ID resolution, aiding usage. Although it doesn't explicitly state when not to use it or compare to siblings, the purpose is straightforward and the sibling list allows differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_list_channelsList active channelsA
Read-only
Inspect

Enumerate channels that are currently active in the app. Requires the API key to have the 'channel-metadata' capability. REST: GET /channels.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNoReturn channel ids only ('id', default) or full details ('value').
limitNoMax channels per page (<=1000). Default 100.
prefixNoOnly return channels whose name starts with this prefix.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description's mention of requiring 'channel-metadata' capability adds some context beyond that. However, it does not disclose pagination behavior or response format, which are relevant for a listing operation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, then adds a prerequisite and REST endpoint. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations and full schema coverage, the description provides enough context. It could be improved by briefly noting the response structure (e.g., returns channel names or details), but the lack of output schema reduces the burden. It is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema provides full descriptions for all three parameters (by, limit, prefix) with 100% coverage. The description adds no additional meaning beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool enumerates active channels, specifying the verb 'Enumerate' and resource 'channels that are currently active'. This distinguishes it from sibling tools like ably_get_channel_details (gets details of a specific channel) and ably_list_apps (lists apps).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the required API key capability ('channel-metadata') and the REST endpoint, but does not explicitly state when to use this tool versus alternatives like ably_get_channel_details or ably_list_apps. No exclusions or when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_list_keysList an app's API keysA
Read-only
Inspect

List the API keys for an app, including their capabilities (but not the full secret). Control API: GET /apps/{app_id}/keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesApp id (from ably_list_apps).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond the readOnlyHint annotation: it notes that capabilities are included but full secrets are not. It also mentions the HTTP method (GET) via the API endpoint, reinforcing that it is a safe read operation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences that convey purpose, scope, security context, and REST endpoint. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input (one parameter) and no output schema, the description is nearly complete. It mentions what is included (capabilities) and excluded (secret). It could briefly mention that the output is a list, but that is implied by 'list' in the name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single required parameter app_id is described as 'App id (from ably_list_apps).' This explicitly tells the agent where to obtain the value, which adds significant semantic meaning beyond the schema's type and required flag. Schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists API keys for an app, includes capabilities but not secrets, and references the REST API endpoint. This distinguishes it from siblings like ably_list_apps (lists apps) or ably_list_channels (lists channels).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing API keys of a specific app. It provides the app_id source (from ably_list_apps) but does not explicitly state when not to use or mention alternatives. However, the sibling tools make the context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_list_namespacesList an app's channel namespacesA
Read-only
Inspect

List the channel namespaces (channel-rule prefixes) configured for an app, e.g. persistence and push settings. Control API: GET /apps/{app_id}/namespaces.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesApp id (from ably_list_apps).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, and the description adds context about being a Control API call and listing settings, with no contradictions. It enhances understanding beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—single sentence with no fluff—and front-loads the action. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter and no output schema, the description is adequate. It explains the tool's purpose and parameter source, though it lacks details about the return format (which could be inferred from context).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description's mention 'App id (from ably_list_apps)' provides crucial source information that aids an agent in preparing the parameter correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'channel namespaces' with examples ('persistence and push settings'), distinguishing it from sibling tools that focus on other resources like channels or apps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing to see namespace settings for an app, but does not explicitly state when to use or not use it, nor does it mention alternatives. Still clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_list_queuesList an app's queuesA
Read-only
Inspect

List the Ably Queues (AMQP/STOMP message queues) provisioned for an app, with their state and messaging stats. Control API: GET /apps/{app_id}/queues.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesApp id (from ably_list_apps).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds that it returns state and stats, and the API endpoint. No contradictions; sufficient given annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and details, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (list operation, single required param, annotations covering read-only), the description provides adequate context including resource type and returned data. No output schema but implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description ('App id from ably_list_apps') is clear. The tool description does not add further parameter details beyond the API endpoint, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists AMQP/STOMP message queues for an app with state and stats, and mentions the API endpoint. This distinguishes it from sibling tools like ably_list_channels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., ably_list_channels). It does not specify prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_list_rulesList an app's integration rulesA
Read-only
Inspect

List the integration rules (reactor rules: webhooks, AWS Lambda/SQS/Kinesis, Kafka, Pulsar, etc.) configured for an app. Control API: GET /apps/{app_id}/rules.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesApp id (from ably_list_apps).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description adds minimal behavioral context beyond the API endpoint. No mention of permissions or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose and include the API endpoint, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a simple list tool. No output schema exists, but the return value is implied; additional details on rule fields would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds value by mentioning the app_id source (from ably_list_apps), which supplements the schema's description. Schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List the integration rules' and specifies the resource and examples (webhooks, AWS Lambda, etc.), distinguishing it from other list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the action 'List' and includes the API endpoint, but does not explicitly state when to use vs. alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_publish_messagePublish a message to a channelA
Destructive
Inspect

WRITE: publish a message to a channel. Every connected subscriber receives it in real time. This is a real, outward-facing side effect — confirm the channel and payload before calling. REST: POST /channels/{channel}/messages.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesMessage payload (string; send JSON as a stringified value).
nameNoOptional event name for the message.
channelYesChannel name to publish to, e.g. 'chat:room1'.
clientIdNoOptional clientId to attribute the message to.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds context by stating 'real, outward-facing side effect' and explaining that subscribers receive messages in real time. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a REST endpoint note, all front-loaded with the WRITE label. Every sentence adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, no output schema, and complete annotations/schema, the description provides enough context: side-effect emphasis, real-time delivery. Could mention rate limits but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description does not add additional parameter-level details beyond the schema, so baseline of 3 is appropriate. The warning about confirming payload indirectly relates but does not add new semantic meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'publish', the resource 'message to a channel', and the effect 'every connected subscriber receives it in real time'. It is easily distinguishable from sibling tools, which are predominantly read-only (get_, list_).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly warns 'confirm the channel and payload before calling', indicating caution due to the outward-facing side effect. While it doesn't list alternatives, the write nature is clear and context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ably_whoamiGet control token / account infoA
Read-only
Inspect

Return details about the configured control token: the account and user it belongs to and its capabilities. Good first call to confirm control-plane access. Control API: GET /me.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true; description adds that it returns account, user, and capabilities, and mentions the REST API endpoint, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: purpose, usage context, and endpoint. Front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 parameters and no output schema, the description fully explains what it returns and when to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; baseline for 0-param tools is 4. Description does not need to add parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns details about the control token: account, user, and capabilities. Distinguishes from sibling tools as a basic identity/access check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends it as a first call to confirm control-plane access, providing clear use context. Does not discuss alternatives but the purpose is distinct enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.