Skip to main content
Glama

event

Idempotent

Event log and activity monitoring for workspaces and shares. Also surfaces the per-member DASHBOARD — a 'what's on your plate' feed of cards (@mentions, file activity) for one workspace, with view-only dismiss/snooze and a best-effort AI overlay. Org-wide storage change feed (changes): ONE cursor covering every workspace and share of an org, instead of polling each one. Call action='describe' for the full action/param reference. Verbosity (detail param): search/activity-list/activity-poll default to terse (compact rows). summarize defaults to standard (envelope around the AI summary). details defaults to full (drill-down). Pass an explicit detail='terse'|'standard'|'full' to override (best-effort on summarize/activity-list/activity-poll — only search/details honor output=; see describe).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
waitNoMax seconds server holds connection (1-95, default 95).
eventNoExact event name. See describe action for catalog.
limitNoMax results (1-250; default 100, changes: 250).
actionYesOperation. Use 'describe' for full action reference.
cursorNochanges: the opaque feed cursor from the previous response — send it back unchanged; omit to bootstrap. activity-list: last activity timestamp for incremental polling.
detailNoPer-record verbosity for search/summarize/details/activity-list/activity-poll. Defaults: terse for search/activity-list/activity-poll (compact rows), standard for summarize, full for details (drill-down). See action='describe' for per-level field lists.
offsetNoPagination offset.
org_idNoOrganization profile ID (19-digit). Filter for search/summarize; the org to read for changes.
user_idNoFilter by the event's stored subject column. DO NOT read it as "the person this event is about": the platform DERIVES that column instead of taking it from the emitter, so it can name an arbitrary related user rather than the subject. For "what did this person do", use calling_user_id (the actor) and read its note. See the search note before relying on either.
card_keyNoDashboard card identity "<lane>:<id>" (e.g. "mention:123"). From a dashboard-list card. Required for dashboard-dismiss/dashboard-undismiss; URL-encoded into the path by the server.
categoryNoEvent category. See describe action for valid values. `node` IS THE AI/RAG PIPELINE, NOT FILE OPERATIONS — file activity lives under `workspace` AND `share`, so query both. CLOUD IMPORT IS NOT `cloudsync` HERE — that is an ACTIVITY field on a different taxonomy and returns nothing rather than erroring. Use category="import", narrowed with subcategory="cloud_import" for graft traffic only.
event_idNoAlphanumeric event opaque ID.
share_idNoFilter by share profile ID.
entity_idNoOpaque ID of a specific object (file, comment, etc.). Pair with entity_type to disambiguate. 19-digit workspace, share, or File Share ID to monitor (activity-poll long-polls GET /activity/poll/{id}/ — for a File Share id this surfaces its file_share_* feed to WORKSPACE MEMBERS only; recipients get no feed).
object_idNoFilter by related object opaque ID (file, folder, etc.).
context_idNoAlias for profile_id (either name works)
profile_idNoPolymorphic context ID. Pair with profile_type=workspace|share|org|fileshare. Use workspace_id instead when only workspaces are valid. 19-digit profile ID (workspace, share, or File Share).
visibilityNoFilter by event visibility level (external_audit_log | external). Default returns both, excludes internal.
created_maxNoISO 8601 datetime — events on or before.
created_minNoISO 8601 datetime — events on or after.
subcategoryNoEvent subcategory. See describe action for valid values.
acknowledgedNoFilter by acknowledgment status.
context_typeNoAlias for profile_type (either name works).
lastactivityNoTimestamp from prior poll's response. Omit on first call.
profile_typeNoProfile type: "workspace", "share", or "fileshare". `fileshare` is valid for activity-list (long-poll a File Share's feed — workspace members only; recipients get no feed).
snooze_untilNoOptional for dashboard-dismiss: a future "Y-m-d H:i:s UTC" timestamp to snooze the card until (it reappears after). Omit for a permanent dismiss.
user_contextNoFocus guidance for AI summary, e.g. "Focus on uploads".
workspace_idNoWorkspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace profile ID.
calling_user_idNoFilter by the user who triggered the event.
parent_event_idNoFilter by parent event ID for serial/batch events. SCOPE-EXCLUSIVE: cannot combine with any filter other than acknowledged, limit, offset.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "search",
      -  "summarize",
      -  "details",
      -  "acknowledge",
      -  "activity-list",
      -  "activity-poll",
      -  "dashboard-list",
      -  "dashboard-dismiss",
      -  "dashboard-undismiss"
      -]New value: +[
      +  "describe",
      +  "search",
      +  "summarize",
      +  "details",
      +  "acknowledge",
      +  "activity-list",
      +  "activity-poll",
      +  "dashboard-list",
      +  "dashboard-dismiss",
      +  "dashboard-undismiss",
      +  "changes"
      +]
    • changedInput schema / properties / cursor / description
      Previous value: -"Last activity timestamp for incremental polling."New value: +"changes: the opaque feed cursor from the previous response — send it back unchanged; omit to bootstrap. activity-list: last activity timestamp for incremental polling."
    • changedInput schema / properties / limit / description
      Previous value: -"Max results (1-250, default 100)."New value: +"Max results (1-250; default 100, changes: 250)."
    • changedInput schema / properties / org_id / description
      Previous value: -"Filter by organization profile ID."New value: +"Organization profile ID (19-digit). Filter for search/summarize; the org to read for changes."
  2. Changed2 schema fields changed
    • changedInput schema / properties / category / description
      Previous value: -"Event category. See describe action for valid values."New value: +"Event category. See describe action for valid values. `node` IS THE AI/RAG PIPELINE, NOT FILE OPERATIONS — file activity lives under `workspace` AND `share`, so query both. CLOUD IMPORT IS NOT `cloudsync` HERE — that is an ACTIVITY field on a different taxonomy and returns nothing rather than erroring. Use category=\"import\", narrowed with subcategory=\"cloud_import\" for graft traffic only."
    • changedInput schema / properties / user_id / description
      Previous value: -"Filter by user profile ID."New value: +"Filter by the event's stored subject column. DO NOT read it as \"the person this event is about\": the platform DERIVES that column instead of taking it from the emitter, so it can name an arbitrary related user rather than the subject. For \"what did this person do\", use calling_user_id (the actor) and read its note. See the search note before relying on either."
  3. Changed6 schema fields changed
    • changedInput schema / properties / card_key / description
      Previous value: -"Dashboard card identity \"<lane>:<id>\" (e.g. \"mention:123\"). From a dashboard-list card. Required for dashboard-dismiss/dashboard-undismiss; URL-encoded into…"New value: +"Dashboard card identity \"<lane>:<id>\" (e.g. \"mention:123\"). From a dashboard-list card. Required for dashboard-dismiss/dashboard-undismiss; URL-encoded into the path by the server."
    • changedInput schema / properties / detail / description
      Previous value: -"Per-record verbosity for search/summarize/details/activity-list/activity-poll. Defaults: terse for search/activity-list/activity-poll (compact rows), standard…"New value: +"Per-record verbosity for search/summarize/details/activity-list/activity-poll. Defaults: terse for search/activity-list/activity-poll (compact rows), standard for summarize, full for details (drill-down). See action='describe' for per-level field lists."
    • changedInput schema / properties / entity_id / description
      Previous value: -"Opaque ID of a specific object (file, comment, etc.). Pair with entity_type to disambiguate. 19-digit workspace, share, or File Share ID to monitor…"New value: +"Opaque ID of a specific object (file, comment, etc.). Pair with entity_type to disambiguate. 19-digit workspace, share, or File Share ID to monitor (activity-poll long-polls GET /activity/poll/{id}/ — for a File Share id this surfaces its file_share_* feed to WORKSPACE MEMBERS only; recipients get no feed)."
    • changedInput schema / properties / profile_id / description
      Previous value: -"Polymorphic context ID. Pair with profile_type=workspace|share|org|fileshare. Use workspace_id instead when only workspaces are valid. 19-digit profile ID…"New value: +"Polymorphic context ID. Pair with profile_type=workspace|share|org|fileshare. Use workspace_id instead when only workspaces are valid. 19-digit profile ID (workspace, share, or File Share)."
    • changedInput schema / properties / profile_type / description
      Previous value: -"Profile type: \"workspace\", \"share\", or \"fileshare\". `fileshare` is valid for activity-list (long-poll a File Share's feed — workspace members only; recipients…"New value: +"Profile type: \"workspace\", \"share\", or \"fileshare\". `fileshare` is valid for activity-list (long-poll a File Share's feed — workspace members only; recipients get no feed)."
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Workspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace…"New value: +"Workspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace profile ID."
  4. Changed3 schema fields changed
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "search",
      -  "summarize",
      -  "details",
      -  "acknowledge",
      -  "activity-list",
      -  "activity-poll",
      -  "dashboard-list",
      -  "dashboard-dismiss",
      -  "dashboard-undismiss",
      -  "dashboard-sign-link"
      -]New value: +[
      +  "describe",
      +  "search",
      +  "summarize",
      +  "details",
      +  "acknowledge",
      +  "activity-list",
      +  "activity-poll",
      +  "dashboard-list",
      +  "dashboard-dismiss",
      +  "dashboard-undismiss"
      +]
    • changedInput schema / properties / card_key / description
      Previous value: -"Dashboard card identity \"<lane>:<id>\" (e.g. \"obligation:123\"). From a dashboard-list card. Required for dashboard-dismiss/dashboard-undismiss; URL-encoded into…"New value: +"Dashboard card identity \"<lane>:<id>\" (e.g. \"mention:123\"). From a dashboard-list card. Required for dashboard-dismiss/dashboard-undismiss; URL-encoded into…"
    • removedInput schema / properties / envelope_id
      Removed value: -{
      -  "description": "Signature envelope id (a signature card's target.id). Required for dashboard-sign-link.",
      -  "minLength": 1,
      -  "type": "string"
      -}
  5. Changed17 schema fields changed
    • addedInput schema / properties / acknowledged
      Added value: +{
      +  "description": "Filter by acknowledgment status.",
      +  "enum": [
      +    "true",
      +    "false"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "describe",
      -  "search",
      -  "summarize",
      -  "details",
      -  "activity-list",
      -  "activity-poll"
      -]New value: +[
      +  "describe",
      +  "search",
      +  "summarize",
      +  "details",
      +  "acknowledge",
      +  "activity-list",
      +  "activity-poll",
      +  "dashboard-list",
      +  "dashboard-dismiss",
      +  "dashboard-undismiss",
      +  "dashboard-sign-link"
      +]
    • addedInput schema / properties / calling_user_id
      Added value: +{
      +  "description": "Filter by the user who triggered the event.",
      +  "type": "string"
      +}
    • addedInput schema / properties / card_key
      Added value: +{
      +  "description": "Dashboard card identity \"<lane>:<id>\" (e.g. \"obligation:123\"). From a dashboard-list card. Required for dashboard-dismiss/dashboard-undismiss; URL-encoded into…",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / context_type / description
      Previous value: -"Alias for profile_type (either name works)"New value: +"Alias for profile_type (either name works)."
    • changedInput schema / properties / context_type / enum
      Previous value: -[
      -  "workspace",
      -  "share"
      -]New value: +[
      +  "workspace",
      +  "share",
      +  "fileshare"
      +]
    • changedInput schema / properties / detail / description
      Previous value: -"Per-record verbosity for search/summarize/details/activity-list/activity-poll. Defaults: terse for search/activity-list/activity-poll (compact rows), standard for summarize, full for details (drill-down). See action='describe' for per-level field lists."New value: +"Per-record verbosity for search/summarize/details/activity-list/activity-poll. Defaults: terse for search/activity-list/activity-poll (compact rows), standard…"
    • changedInput schema / properties / entity_id / description
      Previous value: -"Opaque ID of a specific object (file, comment, worklog entry, etc.). Pair with entity_type to disambiguate. 19-digit workspace or share ID to monitor."New value: +"Opaque ID of a specific object (file, comment, etc.). Pair with entity_type to disambiguate. 19-digit workspace, share, or File Share ID to monitor…"
    • addedInput schema / properties / envelope_id
      Added value: +{
      +  "description": "Signature envelope id (a signature card's target.id). Required for dashboard-sign-link.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / object_id
      Added value: +{
      +  "description": "Filter by related object opaque ID (file, folder, etc.).",
      +  "type": "string"
      +}
    • addedInput schema / properties / parent_event_id
      Added value: +{
      +  "description": "Filter by parent event ID for serial/batch events. SCOPE-EXCLUSIVE: cannot combine with any filter other than acknowledged, limit, offset.",
      +  "type": "string"
      +}
    • changedInput schema / properties / profile_id / description
      Previous value: -"Polymorphic context ID. Pair with profile_type=workspace|share|org. Use workspace_id instead when only workspaces are valid. 19-digit profile ID (workspace or share)."New value: +"Polymorphic context ID. Pair with profile_type=workspace|share|org|fileshare. Use workspace_id instead when only workspaces are valid. 19-digit profile ID…"
    • changedInput schema / properties / profile_type / description
      Previous value: -"Profile type: \"workspace\" or \"share\"."New value: +"Profile type: \"workspace\", \"share\", or \"fileshare\". `fileshare` is valid for activity-list (long-poll a File Share's feed — workspace members only; recipients…"
    • changedInput schema / properties / profile_type / enum
      Previous value: -[
      -  "workspace",
      -  "share"
      -]New value: +[
      +  "workspace",
      +  "share",
      +  "fileshare"
      +]
    • addedInput schema / properties / snooze_until
      Added value: +{
      +  "description": "Optional for dashboard-dismiss: a future \"Y-m-d H:i:s UTC\" timestamp to snooze the card until (it reappears after). Omit for a permanent dismiss.",
      +  "type": "string"
      +}
    • addedInput schema / properties / visibility
      Added value: +{
      +  "description": "Filter by event visibility level (external_audit_log | external). Default returns both, excludes internal.",
      +  "enum": [
      +    "external_audit_log",
      +    "external"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Workspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace profile ID."New value: +"Workspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace…"
  6. Changed16 schema fields changed
    • removedInput schema / properties / created-max
      Removed value: -{
      -  "description": "ISO 8601 datetime — events on or before.",
      -  "type": "string"
      -}
    • removedInput schema / properties / created-min
      Removed value: -{
      -  "description": "ISO 8601 datetime — events on or after.",
      -  "type": "string"
      -}
    • addedInput schema / properties / created_max
      Added value: +{
      +  "description": "ISO 8601 datetime — events on or before.",
      +  "type": "string"
      +}
    • addedInput schema / properties / created_min
      Added value: +{
      +  "description": "ISO 8601 datetime — events on or after.",
      +  "type": "string"
      +}
    • removedInput schema / properties / limit / anyOf
      Removed value: -[
      -  {
      -    "maximum": 250,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / limit / maximum
      Added value: +250
    • addedInput schema / properties / limit / minimum
      Added value: +1
    • addedInput schema / properties / limit / type
      Added value: +"integer"
    • removedInput schema / properties / offset / anyOf
      Removed value: -[
      -  {
      -    "maximum": 9007199254740991,
      -    "minimum": 0,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / offset / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / offset / minimum
      Added value: +0
    • addedInput schema / properties / offset / type
      Added value: +"integer"
    • removedInput schema / properties / wait / anyOf
      Removed value: -[
      -  {
      -    "maximum": 95,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "pattern": "^-?\\d+$",
      -    "type": "string"
      -  }
      -]
    • addedInput schema / properties / wait / maximum
      Added value: +95
    • addedInput schema / properties / wait / minimum
      Added value: +1
    • addedInput schema / properties / wait / type
      Added value: +"integer"
  7. Changed34 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Operation to perform"New value: +"Operation. Use 'describe' for full action reference."
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "search",
      -  "summarize",
      -  "details",
      -  "activity-list",
      -  "activity-poll"
      -]New value: +[
      +  "describe",
      +  "search",
      +  "summarize",
      +  "details",
      +  "activity-list",
      +  "activity-poll"
      +]
    • changedInput schema / properties / category / description
      Previous value: -"Filter by event category (used by: search, summarize). Valid values: user, org, workspace, share, node, ai, invitation, billing, domain, apps, metadata"New value: +"Event category. See describe action for valid values."
    • changedInput schema / properties / created-max / description
      Previous value: -"ISO 8601 datetime — events created on or before (used by: search, summarize)"New value: +"ISO 8601 datetime — events on or before."
    • changedInput schema / properties / created-min / description
      Previous value: -"ISO 8601 datetime — events created on or after (used by: search, summarize)"New value: +"ISO 8601 datetime — events on or after."
    • changedInput schema / properties / cursor / description
      Previous value: -"Last activity timestamp for incremental polling (used by: activity-list)"New value: +"Last activity timestamp for incremental polling."
    • changedInput schema / properties / detail / description
      Previous value: -"Detail level: terse|standard|full (default varies per action: standard for search/activity-list, terse for activity-poll) (used by: search, activity-list, activity-poll)"New value: +"Per-record verbosity for search/summarize/details/activity-list/activity-poll. Defaults: terse for search/activity-list/activity-poll (compact rows), standard for summarize, full for details (drill-down). See action='describe' for per-level field lists."
    • changedInput schema / properties / entity_id / description
      Previous value: -"19-digit workspace or share ID to monitor for changes (required for: activity-poll)"New value: +"Opaque ID of a specific object (file, comment, worklog entry, etc.). Pair with entity_type to disambiguate. 19-digit workspace or share ID to monitor."
    • changedInput schema / properties / event / description
      Previous value: -"Filter by exact event name (used by: search, summarize). Common values — File ops (workspace): workspace_storage_file_added, workspace_storage_file_deleted, workspace_storage_file_moved, workspace_storage_file_copied, workspace_storage_file_updated, workspace_storage_file_restored, workspace_storage_folder_created, workspace_storage_folder_deleted, workspace_storage_folder_moved, workspace_storage_download_token_created, workspace_storage_zip_downloaded, workspace_storage_file_version_restored, workspace_storage_link_added. File ops (share): share_storage_file_added, share_storage_file_deleted, share_storage_file_moved, share_storage_file_copied, share_storage_file_updated, share_storage_file_restored, share_storage_folder_created, share_storage_folder_deleted, share_storage_folder_moved, share_storage_download_token_created, share_storage_zip_downloaded. Comments: comment_created, comment_updated, comment_deleted, comment_mentioned, comment_replied, comment_reaction. Membership: added_member_to_org, added_member_to_workspace, added_member_to_share, removed_member_from_org, removed_member_from_workspace, removed_member_from_share, membership_updated. Workspace lifecycle: workspace_created, workspace_updated, workspace_deleted, workspace_archived, workspace_unarchived. Share lifecycle: share_created, share_updated, share_deleted, share_archived, share_unarchived, share_imported_to_workspace. AI: ai_chat_created, ai_chat_new_message, ai_chat_updated, ai_chat_deleted, ai_chat_published, node_ai_summary_created, workspace_ai_share_created. Metadata: metadata_kv_update, metadata_kv_delete, metadata_kv_extract, metadata_template_update, metadata_template_delete, metadata_template_settings_update, metadata_view_update, metadata_view_delete, metadata_template_select. Quick shares: workspace_quickshare_created, workspace_quickshare_updated, workspace_quickshare_deleted, workspace_quickshare_file_downloaded, workspace_quickshare_file_previewed. Invitations: invitation_email_sent, invitation_accepted, invitation_declined. User: user_created, user_updated, user_deleted, user_email_reset, user_asset_updated. Org: org_created, org_updated, org_closed, org_transfer_token_created, org_transfer_completed. Billing: subscription_created, subscription_cancelled, billing_free_trial_ended."New value: +"Exact event name. See describe action for catalog."
    • changedInput schema / properties / event_id / description
      Previous value: -"Alphanumeric opaque ID of the event (required for: details)"New value: +"Alphanumeric event opaque ID."
    • changedInput schema / properties / lastactivity / description
      Previous value: -"Timestamp from a prior poll's response — look for the top-level lastactivity field in the previous markdown body. Omit on first call. (used by: activity-poll)"New value: +"Timestamp from prior poll's response. Omit on first call."
    • addedInput schema / properties / limit / anyOf
      Added value: +[
      +  {
      +    "maximum": 250,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / limit / description
      Previous value: -"Max results to return (1-250, default 100) (used by: search, summarize)"New value: +"Max results (1-250, default 100)."
    • removedInput schema / properties / limit / maximum
      Removed value: -250
    • removedInput schema / properties / limit / minimum
      Removed value: -1
    • removedInput schema / properties / limit / type
      Removed value: -"integer"
    • addedInput schema / properties / offset / anyOf
      Added value: +[
      +  {
      +    "maximum": 9007199254740991,
      +    "minimum": 0,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / offset / description
      Previous value: -"Number of results to skip for pagination (used by: search, summarize)"New value: +"Pagination offset."
    • removedInput schema / properties / offset / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / offset / minimum
      Removed value: -0
    • removedInput schema / properties / offset / type
      Removed value: -"integer"
    • changedInput schema / properties / org_id / description
      Previous value: -"Filter by organization profile ID (19 digits) (used by: search, summarize)"New value: +"Filter by organization profile ID."
    • changedInput schema / properties / profile_id / description
      Previous value: -"19-digit profile (workspace or share) ID (also accepted as context_id) (required for: activity-list)"New value: +"Polymorphic context ID. Pair with profile_type=workspace|share|org. Use workspace_id instead when only workspaces are valid. 19-digit profile ID (workspace or share)."
    • changedInput schema / properties / profile_type / description
      Previous value: -"Profile type: \"workspace\" or \"share\" (also accepted as context_type) (optional context for: activity-list)"New value: +"Profile type: \"workspace\" or \"share\"."
    • changedInput schema / properties / share_id / description
      Previous value: -"Filter by share profile ID (19 digits) (used by: search, summarize)"New value: +"Filter by share profile ID."
    • changedInput schema / properties / subcategory / description
      Previous value: -"Filter by event subcategory (used by: search, summarize). Valid values: storage, comments, members, lifecycle, settings, security, authentication, ai, invitations, billing, assets, upload, transfer, import_export, quickshare, metadata"New value: +"Event subcategory. See describe action for valid values."
    • changedInput schema / properties / user_context / description
      Previous value: -"Focus guidance for the AI summary, e.g. \"Focus on uploads\" (used by: summarize)"New value: +"Focus guidance for AI summary, e.g. \"Focus on uploads\"."
    • changedInput schema / properties / user_id / description
      Previous value: -"Filter by user profile ID (19 digits) (used by: search, summarize)"New value: +"Filter by user profile ID."
    • addedInput schema / properties / wait / anyOf
      Added value: +[
      +  {
      +    "maximum": 95,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "pattern": "^-?\\d+$",
      +    "type": "string"
      +  }
      +]
    • changedInput schema / properties / wait / description
      Previous value: -"Maximum seconds the server will hold the connection (1-95, default 95) (used by: activity-poll)"New value: +"Max seconds server holds connection (1-95, default 95)."
    • removedInput schema / properties / wait / maximum
      Removed value: -95
    • removedInput schema / properties / wait / minimum
      Removed value: -1
    • removedInput schema / properties / wait / type
      Removed value: -"integer"
    • changedInput schema / properties / workspace_id / description
      Previous value: -"Filter by workspace profile ID (19 digits) (used by: search, summarize)"New value: +"Workspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. Filter by workspace profile ID."
  8. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations provide idempotentHint=true and destructiveHint=false, and the description does not contradict either. Beyond the annotations, the description discloses important traits: the dashboard is 'view-only' with 'best-effort AI overlay', verbosity overrides are 'best-effort' on certain actions, and several behaviors differ by action (e.g., changes cursor reuse, long-polling on activity-poll, fileshare feed only for workspace members). This adds substantial behavioral context beyond the structured fields.

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

Conciseness4/5

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

The description is dense but well-organized, front-loading the main purpose and then layering action-specific notes, verbosity defaults, and references to the describe action. Every sentence carries distinct information, and the structure groups related concerns (events+activity, dashboard, changes, verbosity). It is longer than average, but the complexity of a 30-parameter multi-action tool justifies the length without 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?

For a tool with 30 parameters, no output schema, and 11 actions, the description provides a solid high-level map and directs the agent to action='describe' for the full action/param reference. It covers the major conceptual semantics (verbosity, cursor usage, file share visibility caveats) but relies on that external describe action for per-action field lists and response details. This is a reasonable balance given the scale, though not exhaustive.

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 description coverage is 100%, but the description text goes further by adding critical semantic caveats: the user_id field clarification about derived vs emitter subject, the category field warning that `node` is AI/RAG pipeline not file operations scrubbing, and the cloud_import subcategory disambiguation. These are not present in the schema and materially improve correct parameter usage. The description earns a top score by compensating for schema ambiguities.

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 explicitly names the resource ('Events & Activity') and enumerates the core capabilities: event log/activity monitoring, per-member DASHBOARD feed, and the org-wide changes cursor. It distinguishes the multi-action nature of the tool (search, activity-list, dashboard, changes) and clearly scopes each. The generic tool name 'event' is fully disambiguated by the description.

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 clear context for when to use specific actions: 'changes' for a single org-wide cursor 'instead of polling each one', and a recommendation to call action='describe' for the full action/param reference. It also explains default verbosity levels. However, it does not explicitly contrast this tool against sibling tools (e.g., workspace, share, storage) or state when to prefer one over another, which is a minor gap given the tool's breadth.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources