Skip to main content
Glama

A place's settings (read or change)

place_settings
Idempotent

Read a place's settings (no fields), or change them: name (not a förening's), description, listed, windows, blocks, join, who may post efterlysningar, ratings, face (accent, layout, purpose), roles (the whole list), startPage (always a card), tools. Run the place: done now, with Undo. Else a card. Public or private is theirs: ask. Never your level, its age, admins, money or deleting it.

Input Schema

NameRequiredDescriptionDefault
aiNoNot yours: what the person's AI may do here is their own choice in the place's settings — refused.
ageNoNot yours: a community's age is youth protection — refused.
joinNo
modeNo"draft" always makes a card. Default: as far as yourAi goes.
nameNo
placeNoIts name or id. Left out when they run exactly one.
rolesNoThe whole list each time; keep an id to rename.
toolsNoData stories on the place's page: story ids, the whole list ([] takes them off); each must be public with a source.
blocksNoHow far posts, offers, about and upcoming go: everywhere, app or inside.
colourNoThe place's colour on its page and cards.
layoutNocover: the wide cover photo leads the page; picture: the round picture leads.
listedNo
purposeNoWhat its public page is for: followers (posts first) or members (the next meetup and how to join first).
ratingsNo
windowsNoWhere a public place shows: site (hunchful.io) and explore (Utforska).
startPageNoStart its public page: always a card they tap.
wantedWhoNo
descriptionNo
wantedRolesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / blocks / additionalProperties
      Removed value: -false
    • changedInput schema / properties / blocks / description
      Previous value: -"How far each block of its front goes: posts (the latest posts), offers (Till salu), about (the line), upcoming (the coming events) — everywhere (also hunchful.io), app (the front in the app and Utforska) or inside (only the members). What you don't send stays."New value: +"How far posts, offers, about and upcoming go: everywhere, app or inside."
    • 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."
    • changedInput schema / properties / roles / description
      Previous value: -"The place's own roles — the whole list each time; keep an id to rename a role; a role a #kanal is locked to can't be removed."New value: +"The whole list each time; keep an id to rename."
    • removedInput schema / properties / roles / items / additionalProperties
      Removed value: -false
    • changedInput schema / properties / startPage / description
      Previous value: -"true: start the place's public page (its posts and next meetup for people outside) — always a card the person taps. Seen by others only while the place is public (listed)."New value: +"Start its public page: always a card they tap."
    • removedInput schema / properties / windows / additionalProperties
      Removed value: -false
    • changedInput schema / properties / windows / description
      Previous value: -"Where a PUBLIC place shows: site — its own page on hunchful.io (and Google); explore — its card in Utforska. Both on by default; what you don't send stays. A private place shows nowhere whatever these say."New value: +"Where a public place shows: site (hunchful.io) and explore (Utforska)."
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "itemId": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "note": {
      -      "type": "string"
      -    },
      -    "place": {
      -      "type": "string"
      -    },
      -    "settings": {
      -      "additionalProperties": true,
      -      "properties": {
      -        "colour": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "description": {
      -          "type": "string"
      -        },
      -        "hasCover": {
      -          "type": "boolean"
      -        },
      -        "hasPicture": {
      -          "type": "boolean"
      -        },
      -        "join": {
      -          "type": "string"
      -        },
      -        "layout": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "listed": {
      -          "type": "boolean"
      -        },
      -        "name": {
      -          "type": "string"
      -        },
      -        "page": {
      -          "anyOf": [
      -            {
      -              "additionalProperties": false,
      -              "properties": {
      -                "channelId": {
      -                  "type": "string"
      -                },
      -                "url": {
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "channelId",
      -                "url"
      -              ],
      -              "type": "object"
      -            },
      -            {
      -              "type": "null"
      -            }
      -          ]
      -        },
      -        "purpose": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "ratings": {
      -          "type": "boolean"
      -        },
      -        "roleIds": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "roles": {
      -          "items": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "id": {
      -                "type": "string"
      -              },
      -              "name": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "id",
      -              "name"
      -            ],
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        "wantedRoles": {
      -          "items": {
      -            "type": "string"
      -          },
      -          "type": "array"
      -        },
      -        "wantedWho": {
      -          "type": "string"
      -        },
      -        "yourAi": {
      -          "type": "string"
      -        },
      -        "yourAiMeans": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "name",
      -        "description",
      -        "listed",
      -        "join",
      -        "wantedWho",
      -        "wantedRoles",
      -        "ratings",
      -        "roleIds",
      -        "yourAi",
      -        "yourAiMeans",
      -        "roles",
      -        "colour",
      -        "layout",
      -        "purpose",
      -        "hasPicture",
      -        "hasCover",
      -        "page"
      -      ],
      -      "type": "object"
      -    },
      -    "status": {
      -      "enum": [
      -        "done",
      -        "sent",
      -        "draft",
      -        "read",
      -        "held",
      -        "published"
      -      ],
      -      "type": "string"
      -    },
      -    "why": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    }
      -  },
      -  "required": [
      -    "status",
      -    "place",
      -    "settings",
      -    "itemId",
      -    "why",
      -    "note"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Changed2 schema fields changed
    • addedInput schema / properties / blocks
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "How far each block of its front goes: posts (the latest posts), offers (Till salu), about (the line), upcoming (the coming events) — everywhere (also hunchful.io), app (the front in the app and Utforska) or inside (only the members). What you don't send stays.",
      +  "properties": {
      +    "about": {
      +      "enum": [
      +        "everywhere",
      +        "app",
      +        "inside"
      +      ],
      +      "type": "string"
      +    },
      +    "offers": {
      +      "enum": [
      +        "everywhere",
      +        "app",
      +        "inside"
      +      ],
      +      "type": "string"
      +    },
      +    "posts": {
      +      "enum": [
      +        "everywhere",
      +        "app",
      +        "inside"
      +      ],
      +      "type": "string"
      +    },
      +    "upcoming": {
      +      "enum": [
      +        "everywhere",
      +        "app",
      +        "inside"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / windows
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Where a PUBLIC place shows: site — its own page on hunchful.io (and Google); explore — its card in Utforska. Both on by default; what you don't send stays. A private place shows nowhere whatever these say.",
      +  "properties": {
      +    "explore": {
      +      "type": "boolean"
      +    },
      +    "site": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed14 schema fields changed
    • addedInput schema / properties / colour
      Added value: +{
      +  "description": "The place's colour on its page and cards.",
      +  "enum": [
      +    "forest",
      +    "ocean",
      +    "plum",
      +    "rust",
      +    "ochre",
      +    "rose",
      +    "slate",
      +    "ink"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / layout
      Added value: +{
      +  "description": "cover: the wide cover photo leads the page; picture: the round picture leads.",
      +  "enum": [
      +    "cover",
      +    "picture"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / purpose
      Added value: +{
      +  "description": "What its public page is for: followers (posts first) or members (the next meetup and how to join first).",
      +  "enum": [
      +    "followers",
      +    "members"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / roles
      Added value: +{
      +  "description": "The place's own roles — the whole list each time; keep an id to rename a role; a role a #kanal is locked to can't be removed.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "maxLength": 40,
      +        "type": "string"
      +      },
      +      "name": {
      +        "maxLength": 30,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / startPage
      Added value: +{
      +  "description": "true: start the place's public page (its posts and next meetup for people outside) — always a card the person taps. Seen by others only while the place is public (listed).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / tools
      Added value: +{
      +  "description": "Data stories on the place's page: story ids, the whole list ([] takes them off); each must be public with a source.",
      +  "items": {
      +    "maxLength": 40,
      +    "type": "string"
      +  },
      +  "maxItems": 3,
      +  "type": "array"
      +}
    • addedOutput schema / properties / settings / properties / colour
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / settings / properties / hasCover
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / settings / properties / hasPicture
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / settings / properties / layout
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / settings / properties / page
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "channelId": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "channelId",
      +        "url"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / settings / properties / purpose
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / settings / properties / roles
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "id": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "name"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / settings / required
      Previous value: -[
      -  "name",
      -  "description",
      -  "listed",
      -  "join",
      -  "wantedWho",
      -  "wantedRoles",
      -  "ratings",
      -  "roleIds",
      -  "yourAi",
      -  "yourAiMeans"
      -]New value: +[
      +  "name",
      +  "description",
      +  "listed",
      +  "join",
      +  "wantedWho",
      +  "wantedRoles",
      +  "ratings",
      +  "roleIds",
      +  "yourAi",
      +  "yourAiMeans",
      +  "roles",
      +  "colour",
      +  "layout",
      +  "purpose",
      +  "hasPicture",
      +  "hasCover",
      +  "page"
      +]
  4. Added

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare idempotency, non-destructiveness and non-open-world scope, so the bar is lower. The description still adds real behavioral context beyond them: writes take effect immediately with Undo, otherwise a card is produced, and certain fields (level, age, admins, money, deletion) are explicitly refused rather than mutated. The refusal list and undo semantics are the kind of context annotations cannot express.

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?

The read/write split is front-loaded in a single dense sentence and nothing is padded, which is good. But the telegraphic, comma-spliced style with mixed English/Swedish fragments ("förening", "efterlysningar", "face") makes it harder to parse than necessary, and related rules are jumbled together rather than grouped by read vs. write vs. prohibition.

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?

For a 19-parameter tool with nested objects and no output schema, the description covers the mutation surface and the main guardrails, but it omits what a read call returns and how the read path behaves when no fields are supplied. Mode defaults and the meaning of the "place" selector are left entirely to the schema. It is adequate but not sufficient on its own for a tool of this complexity.

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?

With 19 parameters and only 63% schema description coverage, the description must compensate, and it does so partially by naming most fields and adding rules like "roles (the whole list)" and "startPage (always a card)". Many entries merely restate field names already visible in the schema, and the mapping is obscured by non-standard wording ("face (accent, layout, purpose)", "who may post efterlysningar"). Parameters such as place and mode are not clarified in a way that adds beyond the schema.

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 definition opens with a concrete verb+resource pair, "Read a place's settings ... or change them," and enumerates the mutable fields, so the agent knows this is a combined read/write settings tool. It distinguishes itself from the sibling set_place_picture by handling colour, layout and purpose rather than the picture itself. The term "face" as a grouping label is idiosyncratic and not a parameter name, which slightly muddies an otherwise clear purpose.

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?

"Run the place: done now, with Undo. Else a card" gives implicit guidance that direct mode applies changes immediately (undoably) while draft mode produces a card, and "Public or private is theirs: ask" plus "Never your level, its age, admins, money or deleting it" set boundaries. However, no sibling tool is named as an alternative, and the conditions for choosing draft vs. direct are only implied. Guidance exists but requires 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.