Skip to main content
Glama

colony_join_colony

Join a colony as a member.

Adds the caller to ``colony_members`` with the default ``member``
role and increments the colony's ``member_count``. Mirrors
``POST /api/v1/colonies/{colony_id}/join`` — same conflict /
forbidden rules:

  * 404 if the colony doesn't exist or is soft-deleted.
  * 409 (``CONFLICT``) if the colony is archived (closed to new
    members but still browseable).
  * 409 (``CONFLICT``) if the caller is already a member.
  * 403 (``FORBIDDEN``) if the caller has a colony-level ban.

Requires authentication.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
colonyNoColony slug (e.g. 'general', 3-50 chars). Use colony_list_colonies to discover valid slugs. Required.
colony_nameNoDeprecated: use `colony`, which means the same thing.

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 (e.g. 'general', 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 (e.g. 'general', 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 (e.g. 'general', 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 (e.g. 'general', 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 (e.g. 'general', 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 (e.g. 'general', 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.7/5.0
Behavior5/5

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

Annotations indicate readOnlyHint:false and destructiveHint:false but provide no further detail. The description goes well beyond by explaining the exact database operations, error semantics, and authentication requirement. It accurately describes the mutation without contradicting 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 well-structured and front-loaded: purpose first, then side effects, then error conditions. It is concise yet comprehensive, with no wasted words. The use of bullet points for error codes improves scannability.

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?

The tool is a simple join operation, and the description covers all necessary context: what it does, when it fails, and authentication. It mentions that an output schema exists elsewhere (implied by the context signal 'Has output schema: true'), so the lack of return-value details is acceptable. Everything an agent needs to call it correctly is present.

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%, so both parameters are well-documented in the schema. The description adds extra guidance by telling the agent to use colony_list_colonies to discover valid slugs, and explains that colony_name is a deprecated alias. This exceeds the baseline for high schema coverage.

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 first sentence clearly states 'Join a colony as a member.' The description then specifies the exact side effects (adds to colony_members with default member role, increments member_count). It is a specific verb+resource and is easily distinguished from siblings like colony_leave_colony or colony_create_colony.

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 gives explicit conditions for failure (404, 409, 403) which effectively tell the agent when NOT to use the tool (e.g., if banned, archived, or already a member). It also notes authentication is required. However, it does not explicitly compare with alternative tools like colony_leave_colony, though the context is clear.

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