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. Before publishing, call get_entitlements to confirm the user has credit and a free listing slot — 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

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only flag readOnly=false and openWorld=true; the description goes far beyond them by disclosing credit consumption, the pending AI-moderation state, the refund policy with the prohibited/spam exception, and both error paths (ACTIVE_LISTING_LIMIT_REACHED with pay_url, AUTH_REQUIRED with authoriz_url) plus the recommended user-facing recovery action. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six sentences deliver purpose, a format constraint, two preconditions, side effects, moderation/refund policy, and auth recovery — acroximately 180 words for a 9-param tool with 16 siblings. No sentence is redundant, and the critical constraints are front-loaded before the workflow details.

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?

This is a highly complex mutating tool with 9 params, nested location and details objects, credit side effects, moderation, and auth — yet preconditions, side effects with exceptions, and error recovery are all specified. Because an output schema exists, the lack of return-format prose is not a gap.

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 only 33% schema coverage, the description compensates for the two most error-prone paramaters: it reinforces that location must be {lat, lon} coordinates, and it defines the images semantic — keys returned by request_image_upload, not URLs. However, six paramaters including the opaque details object receive no added meaning beyond what the schema provides.

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?

Opens with a specific verb and resource — 'Publish a listing on behalf of the user' — and immediately scopes it to the 4 verticals and 12 roles. This clearly distinguishes create_listing from mutation siblings like update_listing, delete_listing, renew_listing, and set_listing_status without needing to inspect any 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?

Gives explicit workflow guidance: a prior get_entitlements call to confirm credit and slot, a prior request_image_upload call for each photo, and a connected Teppek account are all stated as prerequisites. It does not explicitly state when-not-to-use or route to an alternative, but the precondition sequencing defines the usage context clearly.

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.

TDQS

A4.2/5.0
Disambiguation4/5

Most tools map cleanly to a resource+action pattern, but search_listings vs semantic_search both retrieve listings and send_message vs reply_to_conversation can both append to an existing thread. The descriptions mostly steer the right choice, but the overlaps are real enough to introduce occasional misselection.

Naming Consistency4/5

The suite overwhelmingly uses snake_case verb_noun names like create_listing, update_listing, list_conversations, and set_listing_status. The main inconsistency is semantic_search, which breaks the verb-first pattern, and a few names like list_my_listings include a possessive, but there is no chaotic mixing of conventions.

Tool Count4/5

At 16 tools, the set sits just above the typical 3-15 sweet spot, but the marketplace domain justifies separate tools for listing management, search, images, entitlements, and messaging. Most tools earn their place, though send_message and reply_to_conversation are somewhat redundant.

Completeness4/5

The listing lifecycle is well covered: create, read, update, delete, renew, status changes, and image management all exist, supported by two search modes and a complete conversation path. Minor gaps remain, such as no tool to enumerate the supported verticals/roles and limited country-wide browsing outside the career vertical, but agents can work around them.

Resources