Skip to main content
Glama

Put my place live

publish_place
Idempotent

Use this when an owner wants their place live on Phorme: its page on phor.me, the app's map and the Phorme connector. Confirm with the owner first, and set confirmation to true only after they said yes. Going live needs an email for booking confirmations and requests: request_email, else the place's own, else the account's. Listing is free; when someone asks to book a place that is not on the gym plan, the ask is held 7 days and the owner is told. It takes no payment and starts no plan. It needs a connected Phorme account that owns the place.

Input Schema

NameRequiredDescriptionDefault
place_idYesThe place_id of one of the owner's places, from get_gym_report or create_or_claim_place.
confirmationYesSet to true only after the owner said yes to putting this place live.
request_emailNoWhere booking confirmations and requests are emailed. Never shown in public.

Output Schema

NameRequiredDescriptionDefault
nextYes
placeYesThe place: place_id, name, kind, line, city, country, address, hours, about, book_url, request_email, request_phone (texts, never public), prices, phone, timezone, status (draft or live), page_url, upcoming_classes, brain_id, on_plan, held_requests and plan_url (the plan on phor.me, a price-free link; null when on the plan).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / place / description
      Previous value: -"The place: place_id, name, kind, line, city, country, address, hours, about, book_url, request_email, prices, phone, timezone, status (draft or live), page_url, upcoming_classes, brain_id, on_plan, held_requests and plan_url (the plan on phor.me, a price-free link; null when on the plan)."New value: +"The place: place_id, name, kind, line, city, country, address, hours, about, book_url, request_email, request_phone (texts, never public), prices, phone, timezone, status (draft or live), page_url, upcoming_classes, brain_id, on_plan, held_requests and plan_url (the plan on phor.me, a price-free link; null when on the plan)."
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, yet the description adds substantial context the annotations cannot: listing is free, it takes no payment, starts no plan, non-gym-plan booking asks are held 7 days, and a connected Phorme account owning the place is required. This is exactly the kind of side-effect and prerequisite detail an agent needs before a mutating call.

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?

The purpose and confirmation requirement are front-loaded, and most clauses (cost, plan, hold window, prerequisites) carry real information. It is dense and slightly run-on in the back half, but no sentence is wasted.

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, return values need not be explained; the description covers the remaining gaps – cost, auth/account prerequisites, side effects on requests, and confirmation gating – leaving nothing an agent needs to call this correctly.

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?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it defines the email precedence chain (request_email, else the place's own, else the account's) and reinforces the confirmation semantics. The fallback logic is genuinely additive.

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?

The description opens with a specific verb+resource+scope: putting a place live across phor.me, the app map, and the Phorme connector. This clearly separates it from siblings like unpublish_place, update_place, and create_or_claim_place 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 Guidelines4/5

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

It states the trigger ('when an owner wants their place live') and a firm prerequisite ('Confirm with the owner first, and set confirmation to true only after they said yes'). It does not explicitly name an alternative tool (e.g. unpublish_place or update_place) or when NOT to use it, so it stops short of a full 5.

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.