Skip to main content
Glama

create_listing

Publish a listing on behalf of the user across any of the 4 verticals and 12 roles. location must be coordinates ({ lat, lon }) — a free-text address is not accepted, so geocode it first. Publishing consumes credits and requires a free listing slot; get_entitlements reports the current balance and remaining slots. A reached limit makes this return an ACTIVE_LISTING_LIMIT_REACHED error carrying a pay_url. Consumes credits and is held for AI moderation (status starts "pending"); credits are refunded if rejected, EXCEPT for prohibited or spam content, which forfeits the credit. To attach photos, first call request_image_upload for each image and pass the returned keys in images — every image is AI-moderated with the text before going live. Requires the user to be connected to Teppek: an anonymous call returns an AUTH_REQUIRED error with an authorize_url — surface "Connect with Teppek" to the user, then retry.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
roleYesThe listing role — this alone fixes supply vs demand (do not send intent_type). vehicle_letter = you OWN the vehicle and are renting it OUT (lessor); for a user who WANTS to rent a vehicle use vehicle_renter. Likewise estate_landlord (renting out) vs estate_renter (wants to rent), estate_seller vs estate_buyer, career_employer (posting a job) vs career_seeker (a CV), service_pro (offering) vs service_client (wants a service).
priceYes
titleYes
imagesNo
detailsNo
currencyYesISO-4217 currency code matching the listing country (e.g. USD, EUR, GBP, TRY). Required — there is no default, to avoid silently mislabeling non-Turkish listings.
locationYesListing coordinates as { lat, lon }. A free-text address is NOT accepted — resolve it to coordinates before calling.
verticalYes
descriptionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {},
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

The description discloses substantial behavioral traits beyond the minimal annotations: credit consumption, credit refund policy with the prohibited/spam exception, AI moderation with 'pending' status, ACTIVE_LISTING_LIMIT_REACHED error with pay_url, and the AUTH_REQUIRED error with authorize_url. This is rich side-effect and failure-mode disclosure. No contradiction with annotations — readOnlyHint false matches the write operation, idempotentHint false matches credit consumption.

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 description is long (7 sentences) but every sentence carries distinct, non-redundant information: scope, location constraint, credit consumption, limits, moderation, refund policy, photo workflow, and auth requirement. Critical constraints are front-loaded (purpose, location, credits) before the workflow details. It is dense but efficient, with no filler — the length is justified by the volume of behavioral content.

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?

For a complex tool (9 params, 6 required, nested location object, 2 enums), the description is remarkably complete. It covers prerequisites (entitlements check, image upload), constraints (coordinate location, credit/slot limits), error handling with actionable recovery steps, moderation behavior, and auth requirements. An output schema exists to document return values, so nothing an agent needs to call this correctly is missing.

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 low at 33%, so the description must compensate. It adds genuine value on the images parameter (keys must come from request_image_upload) and reinforces the location constraint (coordinates required, geocode first). The schema already richly documents role (supply/demand pairs) and currency. However, several parameters (price, title, details, description) receive no added meaning in the description beyond the schema, so compensation is partial.

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 uses a specific verb ('Publish') with a clear resource ('listing') and defines the scope precisely ('across any of the 4 verticals and 12 roles'). It clearly differentiates from sibling tools like update_listing, delete_listing, and set_listing_status by signaling creation of a new listing rather than modification or lifecycle management.

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?

The description gives explicit sequencing guidance: call get_entitlements to check balance/slots before publishing, call request_image_upload for each photo before invoking this tool, and surface 'Connect with Teppek' then retry on AUTH_REQUIRED. It names sibling tools and their role in the workflow. It lacks an explicit 'when not to use' contrast with update_listing, though the create/update name distinction makes this largely self-evident.

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