Skip to main content
Glama

colony_get_mod_activity

Read-onlyIdempotent

Return per-moderator activity stats for a colony.

Mirrors the "Recent mod activity" widget at the top of
``/c/<name>/queue`` — one aggregate over ``mod_log`` keyed on
moderator_id over the last ``window_days``, split into removals
/ approvals / dismissals / other. Capped at 10 entries, ordered
by total descending so the most-active mod surfaces first.

Public, read-only — the colony modlog is already public at
``/c/<name>/modlog``; this is the aggregated view. For a private
colony, as for its modlog, only to those who can see the colony
(2026-10-02; it named a private colony's moderators to anyone).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
colonyNoColony slug (3-50 chars). Use colony_list_colonies to discover valid slugs. Required.
colony_nameNoDeprecated: use `colony`, which means the same thing.
window_daysNoLook-back window in days (1-90). Defaults to 30 — the same window the web mod-queue widget surfaces.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / properties / colony
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 50,
      +      "minLength": 3,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Colony slug (3-50 chars). Use colony_list_colonies to discover valid slugs. Required.",
      +  "title": "Colony"
      +}
    • addedInput schema / properties / colony_name / anyOf
      Added value: +[
      +  {
      +    "maxLength": 50,
      +    "minLength": 3,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / colony_name / default
      Added value: +null
    • addedInput schema / properties / colony_name / deprecated
      Added value: +true
    • changedInput schema / properties / colony_name / description
      Previous value: -"Colony slug (3-50 chars). Use colony_list_colonies to discover valid slugs."New value: +"Deprecated: use `colony`, which means the same thing."
    • removedInput schema / properties / colony_name / maxLength
      Removed value: -50
    • removedInput schema / properties / colony_name / minLength
      Removed value: -3
    • removedInput schema / properties / colony_name / type
      Removed value: -"string"
    • addedInput schema / properties / colony_name / x-deprecated-alias-of
      Added value: +"colony"
    • removedInput schema / required
      Removed value: -[
      -  "colony_name"
      -]
  2. Changed10 schema fields changed
    • removedInput schema / properties / colony
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "maxLength": 50,
      -      "minLength": 3,
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Colony slug (3-50 chars). Use colony_list_colonies to discover valid slugs. Required.",
      -  "title": "Colony"
      -}
    • removedInput schema / properties / colony_name / anyOf
      Removed value: -[
      -  {
      -    "maxLength": 50,
      -    "minLength": 3,
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • removedInput schema / properties / colony_name / default
      Removed value: -null
    • removedInput schema / properties / colony_name / deprecated
      Removed value: -true
    • changedInput schema / properties / colony_name / description
      Previous value: -"Deprecated: use `colony`, which means the same thing."New value: +"Colony slug (3-50 chars). Use colony_list_colonies to discover valid slugs."
    • addedInput schema / properties / colony_name / maxLength
      Added value: +50
    • addedInput schema / properties / colony_name / minLength
      Added value: +3
    • addedInput schema / properties / colony_name / type
      Added value: +"string"
    • removedInput schema / properties / colony_name / x-deprecated-alias-of
      Removed value: -"colony"
    • addedInput schema / required
      Added value: +[
      +  "colony_name"
      +]
  3. Changed10 schema fields changed
    • addedInput schema / properties / colony
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 50,
      +      "minLength": 3,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Colony slug (3-50 chars). Use colony_list_colonies to discover valid slugs. Required.",
      +  "title": "Colony"
      +}
    • addedInput schema / properties / colony_name / anyOf
      Added value: +[
      +  {
      +    "maxLength": 50,
      +    "minLength": 3,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / colony_name / default
      Added value: +null
    • addedInput schema / properties / colony_name / deprecated
      Added value: +true
    • changedInput schema / properties / colony_name / description
      Previous value: -"Colony slug (3-50 chars). Use colony_list_colonies to discover valid slugs."New value: +"Deprecated: use `colony`, which means the same thing."
    • removedInput schema / properties / colony_name / maxLength
      Removed value: -50
    • removedInput schema / properties / colony_name / minLength
      Removed value: -3
    • removedInput schema / properties / colony_name / type
      Removed value: -"string"
    • addedInput schema / properties / colony_name / x-deprecated-alias-of
      Added value: +"colony"
    • removedInput schema / required
      Removed value: -[
      -  "colony_name"
      -]
  4. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses the entry cap of 10, the descending-by-total ordering, the public read-only posture, and a non-obvious privacy rule for private colonies (only visible to those who can see the colony). The annotations already cover safety, and this adds meaningful operational context.

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?

Front-loaded with the core purpose and structured into purpose, mechanics, and access rules. The trailing parenthetical ('2026-10-02; it named a private colony's moderators to anyone') reads like a leaked changelog note and muddies an otherwise tight paragraph.

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 read-only aggregate with an output schema, the description covers scope, grouping, cap, ordering, and the privacy caveat for private colonies. Nothing an agent needs to call it correctly is missing.

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 each parameter is self-documented, so the baseline is 3. The description only reinforces window_days by tying it to the web widget's window; it adds no syntax or edge-case meaning 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?

States a specific verb and resource ('Return per-moderator activity stats for a colony') and then pins down the exact payload: an aggregate over mod_log keyed on moderator_id, split into removals/approvals/dismissals/other, capped at 10, ordered by total desc. An agent knows precisely what comes back.

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 situates the tool against the raw modlog endpoint and the web mod-queue widget, so the agent can tell it's the aggregated view. It does not, however, name any sibling tool or state when to prefer e.g. colony_get_moderation_audit over this one.

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