Skip to main content
Glama

As whom and to whom: where you can publish

list_identities
Read-onlyIdempotent

As whom and to whom they can publish: each thing they run and their pen name, with its key for as, the audiences it offers and whether you may publish directly. Call it when it isn't obvious which. Never tell anyone who's behind a pen name.

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "chats": {
      -      "anyOf": [
      -        {
      -          "items": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "canWrite": {
      -                "type": "boolean"
      -              },
      -              "conversationId": {
      -                "type": "string"
      -              },
      -              "home": {
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "kind": {
      -                "type": "string"
      -              },
      -              "name": {
      -                "type": "string"
      -              },
      -              "unread": {
      -                "type": "number"
      -              }
      -            },
      -            "required": [
      -              "conversationId",
      -              "name",
      -              "kind",
      -              "home",
      -              "unread",
      -              "canWrite"
      -            ],
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "identities": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "canAdmin": {
      -            "type": "boolean"
      -          },
      -          "canEvent": {
      -            "type": "boolean"
      -          },
      -          "canNews": {
      -            "type": "boolean"
      -          },
      -          "canPost": {
      -            "type": "boolean"
      -          },
      -          "homeId": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "homeKind": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "key": {
      -            "type": "string"
      -          },
      -          "kind": {
      -            "type": "string"
      -          },
      -          "name": {
      -            "type": "string"
      -          },
      -          "place": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "audiences": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "brief": {
      -                    "description": "The owner's brief for you: what this channel is, its voice, its themes, what it never says. Follow it when you write as this identity.",
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  },
      -                  "channelId": {
      -                    "type": "string"
      -                  },
      -                  "official": {
      -                    "type": "boolean"
      -                  },
      -                  "publishesDirectly": {
      -                    "type": "boolean"
      -                  },
      -                  "under18CanSee": {
      -                    "type": "boolean"
      -                  },
      -                  "usual": {
      -                    "type": [
      -                      "string",
      -                      "null"
      -                    ]
      -                  }
      -                },
      -                "required": [
      -                  "channelId",
      -                  "audiences",
      -                  "usual",
      -                  "under18CanSee",
      -                  "publishesDirectly",
      -                  "brief",
      -                  "official"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "role": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "key",
      -          "kind",
      -          "homeKind",
      -          "name",
      -          "role",
      -          "place",
      -          "homeId",
      -          "canPost",
      -          "canNews",
      -          "canEvent",
      -          "canAdmin"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "note": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "identities",
      -    "chats",
      -    "note"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Changed1 schema field changed
    • changedOutput schema / properties / identities / items / properties / place / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "audiences": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "channelId": {
      -        "type": "string"
      -      },
      -      "publishesDirectly": {
      -        "type": "boolean"
      -      },
      -      "under18CanSee": {
      -        "type": "boolean"
      -      },
      -      "usual": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "channelId",
      -      "audiences",
      -      "usual",
      -      "under18CanSee",
      -      "publishesDirectly"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "audiences": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "brief": {
      +        "description": "The owner's brief for you: what this channel is, its voice, its themes, what it never says. Follow it when you write as this identity.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "channelId": {
      +        "type": "string"
      +      },
      +      "official": {
      +        "type": "boolean"
      +      },
      +      "publishesDirectly": {
      +        "type": "boolean"
      +      },
      +      "under18CanSee": {
      +        "type": "boolean"
      +      },
      +      "usual": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "channelId",
      +      "audiences",
      +      "usual",
      +      "under18CanSee",
      +      "publishesDirectly",
      +      "brief",
      +      "official"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Added

TDQS

B3.4/5.0
Behavior4/5

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

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses what is returned, that its keys feed the `as` parameter of other tools, and an important privacy constraint: never reveal who is behind a pen name. That privacy rule is real behavioral context an agent could not get from structured fields. It stops short of describing ordering or whether all identities or only publish-permitted ones are returned.

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

Conciseness3/5

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

It is short and the privacy warning earns its place at the end, but the compressed, metaphorical wording ('as whom and to whom', 'each thing they run') costs clarity that a plain noun like 'identity' would have bought for free.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, no output schema, and annotations already covering safety, the description must carry the return shape – and it only sketches it conceptually (pen name, `as` key, audiences, publish permission) without field names or structure. Adequate to decide to call it, thin for interpreting the response.

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?

With zero parameters the baseline is 4, and the description adds cross-tool meaning by explaining that the returned 'key for `as`' is what other tools consume. No further parameter semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description does convey the resource: each identity/pen name with its key for `as`, its audiences, and direct-publish permission. But it never names the operation with a plain verb like 'list', and the phrasing 'each thing they run' and 'pen name' forces the agent to decode metaphor before recognizing it as an identity-listing tool. Distinguishing it from siblings such as whoami requires inference rather than being stated.

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

Usage Guidelines3/5

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

'Call it when it isn't obvious which' gives a genuine but vague trigger condition – unclear which identity to publish as. It names no alternatives (e.g. whoami) and gives no explicit when-not-to-use case, so the routing guidance is only implied.

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.