ably

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

사용해야 할까요

품질 및 안전성

A
설명 품질
99%
스키마 완전성
88%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,329토큰 (도구 정의)
~1.1 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.82%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "ably": {
      "url": "https://ably.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://ably.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (15)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢ably_get_channel_history(channel, start, end, limit, direction)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "channel": {
      "type": "string",
      "description": "Channel name, e.g. 'chat:room1'."
    },
    "start": {
      "description": "Earliest message time, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "end": {
      "description": "Latest message time, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Max messages (<=1000). Default 100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "direction": {
      "description": "forwards (oldest-first) or backwards (newest-first, default).",
      "type": "string",
      "enum": [
        "forwards",
        "backwards"
      ]
    }
  },
  "required": [
    "channel"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_get_presence(channel, clientId, connectionId, limit)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "channel": {
      "type": "string",
      "description": "Channel name."
    },
    "clientId": {
      "description": "Filter to a specific clientId.",
      "type": "string"
    },
    "connectionId": {
      "description": "Filter to a specific connectionId.",
      "type": "string"
    },
    "limit": {
      "description": "Max members (<=1000). Default 100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "channel"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_get_presence_history(channel, start, end, limit, direction)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "channel": {
      "type": "string",
      "description": "Channel name."
    },
    "start": {
      "description": "Earliest event time, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "end": {
      "description": "Latest event time, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Max events (<=1000). Default 100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "direction": {
      "description": "forwards or backwards (default backwards).",
      "type": "string",
      "enum": [
        "forwards",
        "backwards"
      ]
    }
  },
  "required": [
    "channel"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_get_channel_details(channel)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "channel": {
      "type": "string",
      "description": "Channel name."
    }
  },
  "required": [
    "channel"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_list_channels(prefix, limit, by)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "prefix": {
      "description": "Only return channels whose name starts with this prefix.",
      "type": "string"
    },
    "limit": {
      "description": "Max channels per page (<=1000). Default 100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "by": {
      "description": "Return channel ids only ('id', default) or full details ('value').",
      "type": "string",
      "enum": [
        "id",
        "value"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_get_stats(start, end, unit, limit, direction)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "start": {
      "description": "Start of range, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "end": {
      "description": "End of range, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "unit": {
      "description": "Bucket size: minute | hour | day | month. Default minute.",
      "type": "string",
      "enum": [
        "minute",
        "hour",
        "day",
        "month"
      ]
    },
    "limit": {
      "description": "Max buckets (<=1000). Default 100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    },
    "direction": {
      "description": "forwards or backwards (default backwards).",
      "type": "string",
      "enum": [
        "forwards",
        "backwards"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_get_service_time

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

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴ably_publish_message(channel, data, name, clientId)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "channel": {
      "type": "string",
      "description": "Channel name to publish to, e.g. 'chat:room1'."
    },
    "data": {
      "type": "string",
      "description": "Message payload (string; send JSON as a stringified value)."
    },
    "name": {
      "description": "Optional event name for the message.",
      "type": "string"
    },
    "clientId": {
      "description": "Optional clientId to attribute the message to.",
      "type": "string"
    }
  },
  "required": [
    "channel",
    "data"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_whoami

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.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_list_apps(account_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "account_id": {
      "description": "Override the account id (defaults to the token's account).",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_list_keys(app_id)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "string",
      "description": "App id (from ably_list_apps)."
    }
  },
  "required": [
    "app_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_list_namespaces(app_id)

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

입력 스키마

{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "string",
      "description": "App id (from ably_list_apps)."
    }
  },
  "required": [
    "app_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_list_queues(app_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "string",
      "description": "App id (from ably_list_apps)."
    }
  },
  "required": [
    "app_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_list_rules(app_id)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "app_id": {
      "type": "string",
      "description": "App id (from ably_list_apps)."
    }
  },
  "required": [
    "app_id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢ably_get_account_stats(account_id, start, end, unit, limit)

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.

입력 스키마

{
  "type": "object",
  "properties": {
    "account_id": {
      "description": "Override the account id (defaults to the token's account).",
      "type": "string"
    },
    "start": {
      "description": "Start of range, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "end": {
      "description": "End of range, ms since epoch (inclusive).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "unit": {
      "description": "Bucket size: minute | hour | day | month. Default minute.",
      "type": "string",
      "enum": [
        "minute",
        "hour",
        "day",
        "month"
      ]
    },
    "limit": {
      "description": "Max buckets (<=1000). Default 100.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

권장 프롬프트

retrieve_data
Get details about [item] from ably
예상 도구: ably_get_channel_history
fetch_info
Fetch [information type] using ably
예상 도구: ably_get_channel_history
list_items
List all [items] available in ably
예상 도구: ably_list_channels
browse_collection
Show me the [collection] from ably
예상 도구: ably_list_channels
explore_workflow
List available [items], then get details for each one using ably
예상 도구: ably_list_channelsably_get_channel_history

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 15개