Skip to main content
Glama

fathom_propose

Only after your person said yes to this exact proposal. Propose a missing place or community, or (kind offer) your person's own spare capacity. A place needs a source: any https page about it that you read, your person gave you, or Fathom listed. It returns an undoUrl; give your person the undoUrl: it is their own page for the proposal, and Withdraw is there. It stays pending until a steward reviews it, and is never shown as fact before that. An offer never says who: no email, phone, link or address.

Input Schema

NameRequiredDescriptionDefault
yesNoRequired for an offer (kind offer), and sent only after your person said yes to this exact offer.
kindYesA person's own spare capacity, only with their yes.
nameYesIts name; for an offer, what is offered, for example a spare kiln shelf.
noteNoOptional: one line on why it fits.
townYesThe town it is in, for example Oslo.
whenNoOnly for an offer: optional short words on when, for example Thursday evenings.
sourceNoAny https page about it that you read, your person gave you, or Fathom listed; required for a place, optional for a community.
newTownNoOnly when your person confirmed a real town the lab does not cover yet.
said_asNoOptional: the word your person used for the interest, when it differs (for example klatring); the interest is stored as the matched one.
interestYesThe interest it serves, for example pottery.

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#"
    • changedInput schema / properties / kind / description
      Previous value: -"place (a public page about it is required as the source), community, or offer: a person's own spare capacity, only with their yes"New value: +"A person's own spare capacity, only with their yes."
    • changedInput schema / properties / source / description
      Previous value: -"Any https page about it that you read, your person gave you, or Fathom listed; required for a place, optional for a community. Never a placeholder or invented address."New value: +"Any https page about it that you read, your person gave you, or Fathom listed; required for a place, optional for a community."
    • changedInput schema / properties / when / description
      Previous value: -"Only for an offer: optional short words on when, for example Thursday evenings. No contact details."New value: +"Only for an offer: optional short words on when, for example Thursday evenings."
    • changedInput schema / properties / yes / description
      Previous value: -"Required for an offer (kind offer), and sent only after your person said yes to this exact offer. Without it nothing is offered. Ignored for a place or community."New value: +"Required for an offer (kind offer), and sent only after your person said yes to this exact offer."
  2. Changed5 schema fields changed
    • changedInput schema / properties / kind / description
      Previous value: -"place (a public page about it is required as the source) or community"New value: +"place (a public page about it is required as the source), community, or offer: a person's own spare capacity, only with their yes"
    • changedInput schema / properties / kind / enum
      Previous value: -[
      -  "place",
      -  "community"
      -]New value: +[
      +  "place",
      +  "community",
      +  "offer"
      +]
    • changedInput schema / properties / name / description
      Previous value: -"Its name."New value: +"Its name; for an offer, what is offered, for example a spare kiln shelf."
    • addedInput schema / properties / when
      Added value: +{
      +  "description": "Only for an offer: optional short words on when, for example Thursday evenings. No contact details.",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / yes
      Added value: +{
      +  "description": "Required for an offer (kind offer), and sent only after your person said yes to this exact offer. Without it nothing is offered. Ignored for a place or community.",
      +  "enum": [
      +    "yes"
      +  ],
      +  "type": "string"
      +}
  3. Added

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the return value's meaning (undoUrl is the person's own page with a Withdraw control), the lifecycle (stays pending until steward review), the trust guarantee (never shown as fact before review), and a privacy constraint on offers (no email, phone, link or address). None of this is in readOnlyHint=false, openWorldHint=true, destructiveHint=false, which only say this writes and touches the outside world.

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?

Five tight sentences, gating condition first, then the resource kinds, then the return value and lifecycle. Slightly dense and conversational ("kind offer", parenthetical asides), but every sentence carries information and nothing is repeated.

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

Completeness4/5

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

With 10 parameters, no output schema, and mutation semantics, the description supplies the missing pieces an agent needs: what the call yields (undoUrl), what state the proposal lands in, and a hard privacy rule for offers. Minor gaps remain around duplicate handling, validation failures, and whether the source is verified, but the calling-critical context is present.

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 the schema already documents every parameter, including the source requirement for places and the yes gate for offers. The description reinforces the source and the offer-anonymity rule but adds no syntax or format detail beyond the schema, so the baseline of 3 holds.

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?

States a specific verb (propose) and three concrete resources (a place, a community, or a person's spare capacity), with the offer case clearly carved out. It distinguishes itself from generic propose siblings (views_propose, extensions_propose) by naming what is being proposed, though it never names those siblings explicitly.

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?

Front-loads a strong precondition ("Only after your person said yes to this exact proposal") and states the source requirement for places. It does not name an alternative for the case where the place already exists (e.g. fathom_find), so a small routing gap remains.

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