Skip to main content
Glama

Write to a member as the place

message_member

Write to a place's member AS THE PLACE, in the place's thread with them. An adult's opens if needed; someone under 18 only where they started a thread; never another admin. With two unanswered the next waits. Run the place: sent, in its AI log. Drafts or under 18: a draft they send.

Input Schema

NameRequiredDescriptionDefault
modeNo"draft" always makes a card. Default: as far as yourAi goes.
textYes
placeNoIts name or id. Left out when they run exactly one.
memberYesTheir memberId (list_members) or their name as the place's list shows it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / mode / description
      Previous value: -"\"draft\" always makes a draft the person taps. Default: as far as the person's choice for their AI in this place goes (list_places → yourAi)."New value: +"\"draft\" always makes a card. Default: as far as yourAi goes."
    • changedInput schema / properties / place / description
      Previous value: -"Which place — its name (e.g. \"Poker night\") or its id from list_places. May be left out when the person runs exactly one."New value: +"Its name or id. Left out when they run exactly one."
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "conversationId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "itemId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "member": {
      -      "type": "string"
      -    },
      -    "messageId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "note": {
      -      "type": "string"
      -    },
      -    "status": {
      -      "enum": [
      -        "done",
      -        "sent",
      -        "draft",
      -        "read",
      -        "held",
      -        "published"
      -      ],
      -      "type": "string"
      -    },
      -    "why": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "required": [
      -    "status",
      -    "conversationId",
      -    "messageId",
      -    "member",
      -    "itemId",
      -    "why",
      -    "note"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Added

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already flag a non-read-only, non-idempotent write, and the description goes well beyond them: it discloses open-a-thread-if-needed behavior, age-based and admin-based gating, queueing rules after two unanswered messages, logging to the place's AI log, and draft-vs-sent outcomes. The disclosure is genuinely valuable, though compressed into fragments ('An adult's opens if needed') that could be misread.

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 front-loads the core action, with no filler sentences. However, the clipped, article-dropping style produces fragments like 'Run the place: sent, in its AI log' that cost more in comprehension than they save in length, so brevity here borders on under-specification.

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 output schema, the description does attempt to describe outcomes (sent, logged, draft), which is appropriate. But for a tool with nuanced gating rules and a non-idempotent write, the cryptic delivery leaves real ambiguity about failure cases and what the caller receives.

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 75%, with mode, place, and member already documented in the schema; only text is bare, and the description adds no format guidance for it. The mention of drafts partially reinforces the mode enum but does not explain the 'default: as far as yourAi goes' behavior the schema hints at, so the baseline of 3 applies.

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

Purpose4/5

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

The opening clause states a specific verb and resource — writing to a place's member on behalf of the place, inside that place's thread — which separates it from sibling tools like reply_in_place_thread and pro_message. It is not tautological, but the telegraphic phrasing ('AS THE PLACE') forces the agent to parse rather than read cleanly.

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?

The description gives conditional rules for when a send is permitted (adults, under-18 restrictions, never another admin, queuing after two unanswered), which is useful eligibility context. It never names a competing tool or says explicitly when to choose this over reply_in_place_thread, reply_in_thread, or pro_message, so the when-to-use choice against alternatives is left to inference.

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.