Ably MCP by usefulapi
Server Details
MCP server for Ably — channel history, presence, occupancy, stats, publish, and app management.
- Status
- Healthy
- Uptime
- 71.2% over 58 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 15 tools
Every tool targets a distinct resource and action: account-level stats, app-level stats, channel details, history, presence, presence history, service time, and each control-plane listing (apps, keys, namespaces, queues, rules) are clearly separated. The only potentially confusing pair is account stats vs app stats, but their descriptions explicitly differentiate account-wide vs API-key-scoped usage.
All tools use a uniform 'ably_' prefix followed by a consistent verb_noun pattern: get_ for single resources, list_ for collections, publish_message for the write action, and whoami for token details. There are no mixed casing styles or inconsistent verb choices.
Fifteen tools is within the ideal range and each one covers a meaningful Ably capability, from control-plane inspection to channel data retrieval and publishing. The count feels justified given the breadth of Ably's API surface, with no redundant or filler tools.
The read side is well covered: stats, channel details, history, presence, and control-plane listings all have dedicated tools, and message publishing provides one write path. However, there are no create/update/delete operations for apps, keys, namespaces, queues, or rules, so lifecycle management is largely absent and an agent could not perform common administrative workflows.
Available Tools
15 toolsably_get_account_statsGet account-level statisticsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End of range, ms since epoch (inclusive). | |
| unit | No | Bucket size: minute | hour | day | month. Default minute. | |
| limit | No | Max buckets (<=1000). Default 100. | |
| start | No | Start of range, ms since epoch (inclusive). | |
| account_id | No | Override the account id (defaults to the token's account). |
ably_get_channel_detailsGet channel details / occupancyRead-onlyInspect
Get status and occupancy metrics for a single channel (connections, publishers, subscribers, presence members). REST: GET /channels/{channel}.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes | Channel name. |
ably_get_channel_historyGet channel message historyRead-onlyInspect
Retrieve historical messages published to a channel, newest-first by default. REST: GET /channels/{channel}/messages.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Latest message time, ms since epoch (inclusive). | |
| limit | No | Max messages (<=1000). Default 100. | |
| start | No | Earliest message time, ms since epoch (inclusive). | |
| channel | Yes | Channel name, e.g. 'chat:room1'. | |
| direction | No | forwards (oldest-first) or backwards (newest-first, default). |
ably_get_presenceGet channel presence setRead-onlyInspect
List the members currently present on a channel (who is online now). REST: GET /channels/{channel}/presence.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max members (<=1000). Default 100. | |
| channel | Yes | Channel name. | |
| clientId | No | Filter to a specific clientId. | |
| connectionId | No | Filter to a specific connectionId. |
ably_get_presence_historyGet channel presence historyRead-onlyInspect
Retrieve historical presence events (enter/leave/update) for a channel. REST: GET /channels/{channel}/presence/history.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Latest event time, ms since epoch (inclusive). | |
| limit | No | Max events (<=1000). Default 100. | |
| start | No | Earliest event time, ms since epoch (inclusive). | |
| channel | Yes | Channel name. | |
| direction | No | forwards or backwards (default backwards). |
ably_get_service_timeGet Ably service timeRead-onlyInspect
Return the current Ably service time in ms since epoch. Useful for aligning start/end windows to the server clock. REST: GET /time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
ably_get_statsGet app statisticsRead-onlyInspect
Retrieve message/connection/channel usage statistics for the app tied to the API key, bucketed by time. REST: GET /stats.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End of range, ms since epoch (inclusive). | |
| unit | No | Bucket size: minute | hour | day | month. Default minute. | |
| limit | No | Max buckets (<=1000). Default 100. | |
| start | No | Start of range, ms since epoch (inclusive). | |
| direction | No | forwards or backwards (default backwards). |
ably_list_appsList Ably appsRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | No | Override the account id (defaults to the token's account). |
ably_list_channelsList active channelsRead-onlyInspect
Enumerate channels that are currently active in the app. Requires the API key to have the 'channel-metadata' capability. REST: GET /channels.
| Name | Required | Description | Default |
|---|---|---|---|
| by | No | Return channel ids only ('id', default) or full details ('value'). | |
| limit | No | Max channels per page (<=1000). Default 100. | |
| prefix | No | Only return channels whose name starts with this prefix. |
ably_list_keysList an app's API keysRead-onlyInspect
List the API keys for an app, including their capabilities (but not the full secret). Control API: GET /apps/{app_id}/keys.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | App id (from ably_list_apps). |
ably_list_namespacesList an app's channel namespacesRead-onlyInspect
List the channel namespaces (channel-rule prefixes) configured for an app, e.g. persistence and push settings. Control API: GET /apps/{app_id}/namespaces.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | App id (from ably_list_apps). |
ably_list_queuesList an app's queuesRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | App id (from ably_list_apps). |
ably_list_rulesList an app's integration rulesRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | App id (from ably_list_apps). |
ably_publish_messagePublish a message to a channelDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Message payload (string; send JSON as a stringified value). | |
| name | No | Optional event name for the message. | |
| channel | Yes | Channel name to publish to, e.g. 'chat:room1'. | |
| clientId | No | Optional clientId to attribute the message to. |
ably_whoamiGet control token / account infoRead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- Changed
ably_get_account_stats1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_get_channel_details1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_get_channel_history1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_get_presence1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_get_presence_history1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_get_service_time1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_get_stats1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_list_apps1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_list_channels1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_list_keys1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_list_namespaces1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_list_queues1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_list_rules1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_publish_message1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
ably_whoami1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
15 tool updates
- First observed
ably_get_account_stats - First observed
ably_get_channel_details - First observed
ably_get_channel_history - First observed
ably_get_presence - First observed
ably_get_presence_history - First observed
ably_get_service_time - First observed
ably_get_stats - First observed
ably_list_apps - First observed
ably_list_channels - First observed
ably_list_keys - First observed
ably_list_namespaces - First observed
ably_list_queues - First observed
ably_list_rules - First observed
ably_publish_message - First observed
ably_whoami
Related MCP Connectors
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
The official MCP Server for the Mux API
MCP server for Sendbird — chat users, channels, members, and messages from your AI client.
The official Planning Center MCP server for interacting with your ministry's data.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for ntfy: publish notifications, read cached messages, manage users and topic access1342 npmMIT
- AlicenseNot gradedqualityBmaintenanceMCP server for the Mobilerun platform, exposing tools for device control, workflow automation, task management, and platform operations via a stateless HTTP or stdio interface with bearer-token authentication and policy-based access control.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for the Meshimize agent communication platform: Q\&A groups, messaging and group discovery47 npm1MIT
- AlicenseBqualityCmaintenanceMCP server for interacting with a self-hosted Appsmith instance via its REST API, enabling read/update/create of pages, queries, JS objects, widgets, datasources, and applications with lazy session management and destructive-operation gating.30MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.