Skip to main content
Glama

List followers

get_followers
Read-onlyIdempotent

List followers of a Synoptic username, or the signed-in user when username is omitted. Continue with nextToken. Use get_following_users for the authors a user follows.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum items to return in this page
usernameNoExact Synoptic username; omit for the signed-in user
nextTokenNonextToken from the previous page, with the other arguments unchanged; omit for the first page

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes
nextTokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / items / items / properties / avatar / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bucket": {
      -        "description": "S3 bucket holding the image",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "height": {
      -        "anyOf": [
      -          {
      -            "exclusiveMinimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Height in pixels"
      -      },
      -      "key": {
      -        "description": "Storage key of the image",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "region": {
      -        "description": "AWS region of the bucket",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "description": "MIME type, such as image/png",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "width": {
      -        "anyOf": [
      -          {
      -            "exclusiveMinimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Width in pixels"
      -      }
      -    },
      -    "required": [
      -      "bucket",
      -      "key",
      -      "region",
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bucket": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "height": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "key": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "region": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "description": "MIME type, such as image/png",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "width": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "bucket",
      +      "key",
      +      "region",
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / items / items / properties / backgroundImage / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bucket": {
      -        "description": "S3 bucket holding the image",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "height": {
      -        "anyOf": [
      -          {
      -            "exclusiveMinimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Height in pixels"
      -      },
      -      "key": {
      -        "description": "Storage key of the image",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "region": {
      -        "description": "AWS region of the bucket",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "description": "MIME type, such as image/png",
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "width": {
      -        "anyOf": [
      -          {
      -            "exclusiveMinimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Width in pixels"
      -      }
      -    },
      -    "required": [
      -      "bucket",
      -      "key",
      -      "region",
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bucket": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "height": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "key": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "region": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "description": "MIME type, such as image/png",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "width": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "bucket",
      +      "key",
      +      "region",
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed12 schema fields changed
    • addedInput schema / properties / limit / description
      Added value: +"Maximum items to return in this page"
    • addedInput schema / properties / nextToken / description
      Added value: +"nextToken from the previous page, with the other arguments unchanged; omit for the first page"
    • addedInput schema / properties / username / description
      Added value: +"Exact Synoptic username; omit for the signed-in user"
    • changedOutput schema / properties / items / items / properties / avatar / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "bucket": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "height": {
      -        "anyOf": [
      -          {
      -            "exclusiveMinimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "key": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "region": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "type": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "width": {
      -        "anyOf": [
      -          {
      -            "exclusiveMinimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "required": [
      -      "bucket",
      -      "key",
      -      "region",
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bucket": {
      +        "description": "S3 bucket holding the image",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "height": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Height in pixels"
      +      },
      +      "key": {
      +        "description": "Storage key of the image",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "region": {
      +        "description": "AWS region of the bucket",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "description": "MIME type, such as image/png",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "width": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Width in pixels"
      +      }
      +    },
      +    "required": [
      +      "bucket",
      +      "key",
      +      "region",
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / items / items / properties / avatar / description
      Added value: +"Profile image; null when none is set"
    • changedOutput schema / properties / items / items / properties / backgroundImage / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/properties/items/items/properties/avatar/anyOf/0"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "bucket": {
      +        "description": "S3 bucket holding the image",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "height": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Height in pixels"
      +      },
      +      "key": {
      +        "description": "Storage key of the image",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "region": {
      +        "description": "AWS region of the bucket",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "type": {
      +        "description": "MIME type, such as image/png",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "width": {
      +        "anyOf": [
      +          {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Width in pixels"
      +      }
      +    },
      +    "required": [
      +      "bucket",
      +      "key",
      +      "region",
      +      "type"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / items / items / properties / backgroundImage / description
      Added value: +"Profile background image; null when none is set"
    • addedOutput schema / properties / items / items / properties / followersCount / description
      Added value: +"Users following this user"
    • addedOutput schema / properties / items / items / properties / followingCount / description
      Added value: +"Users this user follows; excludes streams"
    • addedOutput schema / properties / items / items / properties / id / description
      Added value: +"Synoptic user ID for follow_user, is_following_user or get_user_by_id"
    • addedOutput schema / properties / items / items / properties / isHighlighted / description
      Added value: +"Featured by Synoptic; listed by get_highlighted_authors"
    • addedOutput schema / properties / items / items / properties / xComHandle / description
      Added value: +"Verified X handle linked to this profile, without @"
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the description's marginal value is the implicit-scope rule (omit username = signed-in user) and the nextToken continuation pattern. It does not add anything about rate limits or result ordering, but with full annotation coverage that omission is minor.

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?

Three short sentences, zero filler. The core purpose and scope rule are front-loaded, and the sibling reference comes last, which is the correct priority order for an agent.

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?

With an output schema present, the description need not explain return values, and annotations cover the safety profile. Scope default, pagination, and sibling disambiguation are all covered, leaving nothing an agent needs in order to call this correctly.

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 description coverage is 100%, so all three parameters are already documented, including username's 'omit for the signed-in user' and nextToken's 'omit for the first page'. The description restates those semantics rather than adding new ones (no page-size guidance or stability notes), so baseline 3 applies.

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 ('List followers of a Synoptic username') plus the default scope when username is omitted. It also explicitly contrasts itself with get_following_users, so the agent can distinguish the two without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the alternative tool and the condition that selects it ('Use get_following_users for the authors a user follows'), and gives the pagination workflow ('Continue with nextToken'). Routing between the two closely-named siblings is unambiguous.

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