Teppek
Server Details
Map-first global classifieds marketplace — search and post listings across jobs, real estate, vehicles, and services, on behalf of a signed-in user.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 16 of 16 tools scored.
Each tool has a clearly distinct purpose: listing CRUD, search (keyword vs semantic), messaging, entitlements, and image upload are all cleanly separated. Even the two search tools are well-differentiated by their descriptions.
All tools follow a consistent verb_noun pattern (create_listing, get_conversation, list_my_listings, etc.). The few multi-word nouns (semantic_search, request_image_upload) still follow the same verb-first style, so there is no confusion.
16 tools is slightly above the typical 3-15 sweet spot, but every tool serves a distinct, necessary function for a multi-vertical marketplace with messaging and image handling. The count is reasonable and not bloated.
The tool set covers the full listing lifecycle (create, read, update, delete, status, renew, images), provides both keyword and semantic search, supports messaging threads, and exposes entitlements. There are no obvious dead ends or missing core operations.
Available Tools
16 toolscreate_listingAInspect
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. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The 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). | |
| price | Yes | ||
| title | Yes | ||
| images | No | ||
| details | No | ||
| currency | Yes | ISO-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. | |
| location | Yes | Listing coordinates as { lat, lon }. A free-text address is NOT accepted — resolve it to coordinates before calling. | |
| vertical | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden and excels. It discloses credit consumption, AI moderation, 'pending' status, refund policy (including exceptions for prohibited/spam content), and photo moderation. It also warns about location format. This is exemplary transparency for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with purpose. Every sentence adds critical information: location constraint, moderation/credit behavior, and image workflow. No redundancy or fluff. Efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 params, nested objects) and that an output schema exists, the description covers all non-obvious aspects: verticals/roles scope, coordinates requirement, credit/moderation behavior, and image upload prerequisite. It does not need to explain return values. Complete for a create tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description adds meaningful semantics for `location` (must be coordinates, geocode first) and `images` (must come from request_image_upload). It reinforces role semantics already in schema. However, it does not explain `details`, `vertical`, or `description` beyond the schema, though these are more self-explanatory. The added context for the most critical params earns a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's function: 'Publish a listing on behalf of the user across any of the 4 verticals and 12 roles.' This is a specific verb+resource, and it distinguishes the tool from siblings like update_listing and delete_listing. It also clarifies scope (verticals/roles), leaving no ambiguity about what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: geocode location first, request image uploads before attaching photos, and expect credit consumption/moderation. It does not explicitly name alternative tools or state 'when not to use,' but the constraints given effectively guide correct usage. Lacks explicit exclusions, preventing a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_listingAInspect
Delete (soft-delete) one of the USER'S OWN listings by listing_id. Only the owner can delete. No credit is refunded — the listing was already published.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of behavioral disclosure. It reveals the soft-delete nature, ownership restriction, and financial consequence (no credit refund), which are critical behavioral traits beyond the simple schema. This is exceptional transparency for a deletion tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and every word adds value. It avoids redundancy and presents all key information (action, ownership, soft-delete, refund policy) efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema, the description is complete. It covers what the tool does, preconditions (ownership), and postconditions (soft-deleted, no refund). No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines listing_id as a string with length constraints. The description adds meaningful semantics by clarifying that the listing_id must belong to the user's own listing, and that the listing is already published. This compensates well for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Delete'), the resource ('one of the USER'S OWN listings'), and the scope ('by listing_id'). It explicitly notes it is a soft-delete and differentiates from siblings like set_listing_status by emphasizing ownership and deletion rather than status changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use the tool ('Delete one of the USER'S OWN listings'), including a prerequisite ('Only the owner can delete') and a consequence ('No credit is refunded'). However, it does not explicitly name alternative tools or scenarios where a different tool (e.g., set_listing_status) would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversationAInspect
Read one of the user's OWN message conversations by thread_id, including its messages (marks incoming messages read). Only threads the authenticated user participates in are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses a non-obvious side effect: 'marks incoming messages read'. It also states the access scope ('Only threads the authenticated user participates in are returned'). This goes beyond a simple read and is genuinely helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core action ('Read one...') and then add the important side effect and access constraint. Every word earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter) and has an output schema (not shown), so the return format is likely covered. The description covers the critical side effect and access scope. It does not mention error cases (e.g., not found, forbidden), but this is not essential given the explicit participation constraint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter thread_id is clear from its name and the description says 'by thread_id', but it does not explain how to obtain the ID or provide format details beyond the schema's min/max length. With schema description coverage at 0%, the description adds minimal semantic value beyond the parameter name itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Read' with a clear resource 'one of the user's OWN message conversations' and identifies the key identifier 'by thread_id'. It also states the inclusion of messages, making it distinct from siblings like list_conversations (which lists all) and reply_to_conversation (which writes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context that this is for reading a single conversation by ID, and adds a constraint about authentication/participation. However, it does not explicitly name alternatives like list_conversations for finding thread IDs or say when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entitlementsAInspect
Check the user's publishing entitlements BEFORE attempting to publish: membership tier, max vs current active listings, remaining slots, wallet credit balance, the per-listing credit cost, and can_create_listing. When the limit is reached the response indicates whether the user can pay from wallet credit or should open checkout (pay_url).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden for behavioral disclosure. It details specific return fields (membership tier, max/current listings, remaining slots, wallet balance, credit cost, can_create_listing) and explains behavior when the limit is reached (wallet vs checkout). It implies a read-only check but does not explicitly state side effects or auth requirements, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact yet informative, with two sentences that front-load the purpose and provide necessary details on fields and edge-case behavior. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description still adds valuable context about when to use it and what the response indicates about paying vs. checkout. It is fully complete for a getter/check tool and leaves no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema shows nothing to document. As per baseline, a score of 4 is appropriate when no parameters exist, and the description correctly focuses on outputs and usage rather than params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks user publishing entitlements with specific attributes (membership tier, listings, wallet credit), distinguishing it from sibling tools like create_listing or update_listing. The verb 'Check' and resource 'entitlements' make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use this tool 'BEFORE attempting to publish', providing clear timing guidance. It does not explicitly name alternative tools or exclusionary conditions, but the context is strong enough for correct selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_listingAInspect
Fetch the full detail of ONE Teppek listing by id — title, description, price/salary, location and the Teppek contact route. Use after search_listings to show, summarize or compare a specific job, home, vehicle or service the user picked.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | No | |
| price | No | |
| title | No | |
| status | No | |
| currency | No | |
| vertical | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The verb 'Fetch' clearly implies a read-only operation, and listing the returned fields adds context. It doesn't mention error cases, auth, or rate limits, but for a simple get-by-id tool, the behavior is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, and no filler. The em-dash list of fields is compact yet informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no elaboration. The description covers purpose, usage, and scope. Minor omissions like handling of non-existent ids are not critical for a fetch-by-id tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), so the description must compensate. It says 'by id' and instructs to use 'after search_listings', meaning the listing_id comes from search results. This adds practical context beyond the bare schema property name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches one listing by id, naming the resource (Teppek listing) and the exact fields returned (title, description, price/salary, location, contact route). It is easily distinguished from sibling tools like search_listings, which lists many.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use after search_listings' for showing/summarizing/comparing a specific item. This provides clear workflow context and implicitly identifies search_listings as the alternative for browsing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsAInspect
List the user's OWN listing-message conversations (threads they started, or received as a listing owner), newest first. Resolved from the authenticated agent key — only ever this user's threads. Use get_conversation to read a thread's messages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses that results are limited to the user's own threads, resolved from the 'authenticated agent key', and sorted newest first. This adds meaningful constraints beyond the generic 'list' verb, though it doesn't explicitly confirm read-only behavior beyond the word 'List'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences, front-loaded with the main verb and resource, and includes a useful pointer to a sibling tool. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description doesn't need to explain return values. It covers scope, ordering, and the follow-up tool, though pagination is left to the schema, making the description slightly incomplete for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description contains no mention of the limit or offset parameters, and schema coverage is 0%, so it fails to compensate for the schema's documentation gap. It offers no additional meaning beyond the schema's defaults and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action ('List'), the resource ('the user's OWN listing-message conversations'), and adds scope clarification ('threads they started, or received as a listing owner') and ordering ('newest first'). This clearly distinguishes it from sibling tools like list_my_listings (which lists listings) and get_conversation (which reads a thread).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly directs to 'Use get_conversation to read a thread's messages', providing a clear alternative for a follow-up action. However, it does not mention exclusions such as searching or filtering across other users' conversations, so while context is clear, it lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_listingsAInspect
List the user's OWN listings (any status), newest first. Resolved from the authenticated agent key — only ever returns this user's listings. Use status='pending' to see what is awaiting moderation, status='rejected' for declined ones.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No | Filter YOUR listings by moderation/lifecycle status. Use "pending" to see what is awaiting AI moderation, "rejected" for declined ones, "all" (default) for everything. | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | Yes | |
| listings | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It reveals that results are resolved from the authenticated agent key and scoped to that user, and that ordering is newest first. These are key behavioral traits beyond what the schema shows. It does not explicitly state read-only behavior, but 'list' implies it, and no side effects are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. The primary purpose is front-loaded, followed by key scoping behavior and then practical usage tips. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a simple list tool with an output schema, the description covers the essentials: purpose, ownership scoping, ordering, and status filter guidance. It lacks explicit pagination behavior (e.g., how offset works with 'newest first'), but that is likely inferable. It does enough to be considered complete for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only 'status' has a description), so the description should compensate. It adds meaning for status by explaining pending and rejected, but does not explain limit or offset semantics. It does mention 'newest first' which indirectly relates to ordering but not pagination. Overall, it partially compensates but leaves the standard pagination params undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the user's own listings with a specific verb and resource, and emphasizes ownership scope ('own listings', 'only ever returns this user's listings'). It also specifies ordering (newest first), distinguishing it from sibling tools like search_listings or list_conversations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance for using status filters ('pending' for moderation, 'rejected' for declined), which is practical. It also implies when to use this tool by highlighting that it returns only the authenticated user's listings, differentiating it from broader search tools. However, it does not explicitly name alternative tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renew_listingAInspect
Renew one of the USER'S OWN listings — extend its expiry another 30 days (native listings lapse ~30 days after posting). Free — no credit charge. Renewing an expired listing returns it to active; a pending, rejected, sold, or draft listing cannot be renewed.
| Name | Required | Description | Default |
|---|---|---|---|
| listing_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| listing | Yes | |
| success | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses cost (free), the 30-day extension, the lapse behavior, and which states cannot be renewed. It could add more about error conditions or side effects, but the key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences, front-loaded with the core purpose, then adding cost and eligibility constraints. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with an output schema, this description is complete. It covers purpose, effect, cost, ownership, and state restrictions, enabling an agent to select and invoke it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter, listing_id, with no description and 0% schema coverage. The description adds an important ownership constraint ('USER'S OWN listings') and eligibility rules, but never explicitly names listing_id or explains its format beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('renew') with a specific resource ('one of the USER'S OWN listings') and clearly states the effect (extend expiry 30 days). This clearly distinguishes it from sibling tools like update_listing or set_listing_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use (renew own listings) and specifically lists when-not cases (pending, rejected, sold, draft cannot be renewed). It does not explicitly name alternative tools, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_conversationAInspect
Reply into one of the USER'S OWN message conversations by thread_id — the message goes to the other participant. Works whether the user is the listing owner answering an inquiry or the inquirer following up. Contact routes through Teppek; raw personal details are never exposed. Find thread_id via list_conversations / get_conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The reply to post into the conversation. Contact routes through Teppek; raw personal details are never exposed. | |
| thread_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and adds useful behavioral context: the message goes to the other participant, contact routes through Teppek, and raw personal details are never exposed. The phrase 'USER'S OWN' also implies an ownership/permission boundary for the conversation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and resource, then scenarios, privacy routing, and how to find the identifier. Every sentence earns its place with no redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter write tool with an output schema, the description covers purpose, ownership, recipient, privacy, and how to find thread_id. It does not introduce an explicit alternative, but the usage context is sufficiently clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% because thread_id lacks a description. The description compensates by explaining that the reply is threaded by thread_id and by telling the agent to find thread_id via list_conversations/get_conversation. Body semantics are already covered in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Reply into one of the USER'S OWN message conversations by thread_id' and clarifies the recipient as 'the other participant.' It also distinguishes this from a generic send by centering on an existing conversation thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear use context: works whether the user is the listing owner answering or the inquirer following up, and tells the agent how to obtain the required thread_id via list_conversations/get_conversation. It does not state explicit when-not-to-use or name alternatives like send_message, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_image_uploadAInspect
Get a short-lived upload grant to attach a photo to a listing you're about to publish (any vertical/role). Returns { key, upload_url, upload_token, headers_required }: POST the raw image bytes to upload_url with those headers, then pass the returned key in create_listing's images array. Images are AI-moderated (content safety + consistency with the listing text) before the listing goes live.
| Name | Required | Description | Default |
|---|---|---|---|
| file_size | Yes | ||
| content_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | No | |
| upload_url | No | |
| upload_token | No | |
| headers_required | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior, and it does so thoroughly. It explains that the grant is short-lived, that the tool only issues the grant (actual upload is a separate POST), and that images undergo AI moderation (content safety + consistency) before publication. It also details the exact return fields, which is significant behavioral context beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place. The first sentence states purpose and scope, the second gives the return contract and exact next steps, and the third discloses a critical behavioral constraint (AI moderation). No filler or redundancy; highly structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description goes beyond what structured data provides: it explains the workflow (get grant → POST bytes → pass key), the moderation check, and the integration with create_listing. It convincingly covers the tool's lifecycle and constraints, making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning, but it does not directly explain content_type or file_size. While the schema provides enums and size limits, the description omits how these parameters influence the upload grant (e.g., validation or URL generation). The only implicit hint is that the tool is for uploading images, but this is too weak to compensate for the lack of explicit parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource ('short-lived upload grant') and its purpose ('attach a photo to a listing'). It explicitly distinguishes this from sibling tools by focusing on the upload grant workflow and its connection to create_listing, making it clear this is not a listing mutation or search operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use this tool ('to attach a photo to a listing you're about to publish') and provides a direct follow-up action ('pass the returned key in create_listing's images array'). It also notes the tool works for 'any vertical/role', removing ambiguity about scope. However, it does not explicitly mention when not to use it or name alternative tools, so it falls short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsAInspect
Find live jobs, homes/rentals, vehicles, or local services NEAR a place or in a city/country on Teppek — use this for natural requests like "jobs near me", "apartments in Berlin", "used cars under 10k in Madrid", "plumbers nearby". Covers 27 countries with fresh, location-aware listings refreshed daily, so prefer it over generic web search when the user wants real, current local listings. Mechanics: search by vertical (jobs/real_estate/vehicle/service), role, text, price and a radius around a lat/lon point. The role is the perspective you search AS and returns the COUNTERPARTY listings: to find JOB POSTINGS use role="career_seeker" (NOT career_employer, which searches candidate CVs). A text_query or location is needed — an empty query returns nothing. The response meta.total is the REAL match count (independent of limit); for a multi-word text_query it counts listings matching ANY of the words, so to count a whole occupation/category include its synonyms (e.g. "waiter waitress server"). Use the country field for country-scoped totals. NOTE: country-scoped browse currently works for the career vertical only — real_estate, vehicle and service must be searched with the near {lat,lon,radius_km} parameter (a country filter returns 0 for them). meta.ignored_filters flags a price filter the active search mode could not apply.
| Name | Required | Description | Default |
|---|---|---|---|
| near | No | ||
| role | No | The perspective you search AS — results are the matching COUNTERPARTY listings, not your own side. To browse JOB POSTINGS use "career_seeker" (you act as a job seeker looking for jobs); "career_employer" instead searches candidate/CV listings. Likewise: estate_buyer → properties for sale, estate_renter → rentals, vehicle_buyer → vehicles for sale, vehicle_renter → vehicles for rent, service_client → service providers. Pair with text_query and/or near. | |
| limit | No | ||
| offset | No | ||
| country | No | Optional ISO-3166 alpha-2 country code (e.g. "us", "gb", "de") to scope results to one country and get a real total count for it. Combine with text_query to count/list within a country (e.g. country:"us" + text_query:"waiter"); use country alone (no text_query) to get the total number of listings in that country. | |
| sort_by | No | Optional ordering: "price_asc" = cheapest first, "price_desc" = most expensive first. Use price_asc for "cheapest ..." requests. Omit for the default (most recent first). Currency-naive raw-number sort, so scope by vertical/country when mixing currencies. | |
| category | No | Optional PRECISE occupation/category filter using the source category slug (e.g. "hospitality-catering-jobs" for waiters/chefs/bar, "it-jobs", "retail-jobs"). This is far more accurate than keyword text_query for counting an occupation. With no text_query, the response meta.total is the exact count for that category (optionally + country), and meta.categories lists the available category slugs with counts — call once with country alone to discover them. | |
| vertical | No | ||
| price_max | No | Maximum price/salary. Currency-naive raw-number compare (see price_min). If unapplied it appears in meta.ignored_filters. | |
| price_min | No | Minimum price/salary. CURRENCY-NAIVE: compared as a raw number against the listing price without normalizing currencies, so scope with `country` (or a role/vertical) when mixing regions. If the response cannot apply it, price_min is listed in meta.ignored_filters. | |
| text_query | No | ||
| intent_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having no annotations, the description thoroughly discloses behavioral nuances: role returns counterparty listings, empty query returns nothing, meta.total is the real match count, multi-word queries match ANY word, country-scoped browse only works for career, and meta.ignored_filters flags unapplied price filters. This fully compensates for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense block but front-loaded with purpose and examples, and each sentence introduces valuable detail. It is not too verbose, though it could be improved with section breaks for readability. Every sentence earns its place, so it's strong albeit slightly unstructured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 params, nested objects, no annotations), the description covers all essential aspects: usage scenarios, data freshness, role semantics, required parameters, response meta behavior, country limitations, and ignored filters. Output schema exists, so not explaining return values is acceptable. The description is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, but the description adds critical semantics for parameters beyond the schema: it explains the role perspective system, text_query requirement, multi-word ANY behavior, country scoping limitation, and how ignored_filters works. This substantially elevates understanding of params like role, near, text_query, and country.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Find live jobs, homes/rentals, vehicles, or local services NEAR a place or in a city/country on Teppek'), making the tool's scope immediately clear. It also distinguishes itself from generic web search by emphasizing real-time, location-aware listings, which separates it from broad-search alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit natural-language query examples ('jobs near me', 'apartments in Berlin') and states a clear preference over generic web search for real, current local listings. However, it does not explicitly compare against sibling search tools like semantic_search, so there is room for more exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_searchAInspect
Semantic (meaning-based) search over Teppek's live listings, backed by a multilingual embedding index. Use it when the user describes what they want in natural language rather than exact keywords — e.g. "outdoor jobs that don't need a degree", "affordable family cars that are good in snow", "a cosy studio close to the university". Returns the closest-matching ACTIVE listings ranked by semantic similarity (each item carries a score). Complements search_listings: prefer search_listings for precise keyword/role/country/category/price filtering and exact counts; prefer semantic_search when meaning, synonyms, or fuzzy intent matter more than literal terms. Optional vertical narrows to jobs/real_estate/vehicle/service.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Natural-language description of what the user wants (e.g. "quiet night-shift jobs that do not need a degree", "cosy family flat near a park"). Matched by MEANING against the listing text, not exact keywords. | |
| vertical | No | Optional vertical filter (career | real_estate | vehicle | service) applied server-side to the active listings before they are returned. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the output (ranked by semantic similarity with a score) and mentions it only acts on active listings. It could be more explicit about idempotency/read-only nature, but the examples and context imply safe read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet informative, with natural language examples that aid understanding. It is front-loaded with the core purpose and usage guidance, though slightly wordy with multiple examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (implied by context), the description needn't detail return values. It covers purpose, usage guidelines, and basic behavior. It could mention that the search is multilingual, but overall it is sufficiently complete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (2 of 3 parameters have descriptions). The description adds no additional meaning beyond what's in the schema; the optional vertical filter is already described. The 'limit' parameter lacks description in both schema and description text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs semantic search over active listings, using natural language queries. It distinguishes itself from keyword search with concrete examples, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly contrasts with sibling tool 'search_listings', explaining when to use each: semantic_search for meaning and synonyms, search_listings for precise filtering. This helps agents select the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageAInspect
Message the owner of a Teppek listing on the user's behalf — the primary contact path (there is no price-offer/accept/reject flow). Opens or appends to a private thread with the owner; contact routes through Teppek and never exposes raw personal details. External-feed listings (e.g. imported jobs) have no Teppek owner, so this returns a redirect to the external application URL instead of creating a thread.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The message to send to the listing owner. Contact routes through Teppek; raw personal details are never exposed. | |
| listing_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It transparently states that the tool opens/appends a private thread, routes contact through Teppek without exposing raw personal details, and returns a redirect for external-feed listings instead of creating a thread. This provides substantial behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary purpose, and every sentence adds meaningful behavioral or usage detail. There is no redundant text or unnecessary padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, side effects, and edge cases (external-feed redirect) well. The presence of an output schema supplements return-value expectations. However, given the sibling tool reply_to_conversation, explicit differentiation from that tool would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (body has a description, listing_id does not). The tool description reinforces body semantics (contact routing, privacy) and clarifies that listing_id refers to a Teppek listing, but it does not explicitly describe listing_id's format or source. The description partially compensates but leaves room for ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Message the owner of a Teppek listing on the user's behalf') and identifies the primary contact path, explicitly ruling out a price-offer/accept/reject flow. However, it does not explicitly distinguish this tool from sibling reply_to_conversation, which is a closely related messaging tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use this tool: as the primary contact path for Teppek listings, including behavior for external-feed listings. It implies this is the go-to for contacting owners but does not explicitly state when not to use it or mention alternatives like reply_to_conversation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_listing_statusAInspect
Change the lifecycle status of one of the USER'S OWN listings: mark it sold, hide it (take it offline), or re-activate a hidden one. Free — no credit charge. Cannot set moderation states (pending/rejected); re-activating only works on a listing that was previously approved and is currently hidden.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | sold = mark the listing sold/closed; hidden = temporarily take a live listing offline; active = re-show a listing that is currently hidden (only works if it was previously approved). Cannot set moderation states. | |
| listing_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| listing | Yes | |
| success | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral transparency. It discloses that the operation is free ('No credit charge'), that it cannot set moderation states, and that re-activation has strict conditions. It also implies a state mutation. It does not discuss side effects like sales proceeds or reversibility, but the key boundaries are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the main purpose, and contains no filler. Each sentence adds valuable information: the action and statuses, the cost, and the limitations/conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two parameters, an enum, and an output schema, the description is sufficiently complete for an agent to correctly select and invoke the tool. It covers the primary purpose, constraints, and a key precondition. It could mention error cases or authentication requirements, but these are not essential for this level of complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the status parameter with a detailed enum description, but listing_id only has length constraints. The description adds semantic meaning by clarifying that the listing belongs to the user and by explaining the condition for 'active' (requires previously approved and currently hidden). This compensates for incomplete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Change') and resource ('lifecycle status of one of the USER'S OWN listings'). It explicitly enumerates the three supported status changes (sold, hidden, active) and distinguishes it from sibling tools like update_listing or delete_listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong context for when to use the tool: it is scoped to the user's own listings, and it explicitly states what it cannot do ('Cannot set moderation states (pending/rejected)') and a key precondition ('re-activating only works on a listing that was previously approved and is currently hidden'). It does not explicitly name alternative tools, but the boundaries are clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_listingAInspect
Edit fields (title, description, price, currency, location) on one of the USER'S OWN listings, identified by listing_id. Only the owner can edit; vertical/intent_type/role are fixed (publish a new listing to change those). Editing is free (no credit charge). Changing the title, description, or location re-triggers AI moderation (the listing returns to 'pending' until cleared); price/currency-only edits stay live. A price change may be rejected if the listing's price is locked.
| Name | Required | Description | Default |
|---|---|---|---|
| price | No | ||
| title | No | ||
| details | No | ||
| currency | No | ||
| location | No | New listing coordinates { lat, lon }. Moving a listing re-triggers AI moderation — it returns to "pending" until cleared. | |
| listing_id | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| listing | Yes | |
| success | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that editing is free, changing certain fields re-triggers AI moderation and moves the listing to 'pending', and price changes may be rejected if locked. These are non-obvious consequences critical for an agent to understand before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with four sentences each adding essential information: field scope, ownership and immutability, cost, moderation behavior, and price lock. It is front-loaded with the purpose and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, nested objects) and no annotations, the description is quite complete, covering ownership, cost, moderation, and price lock. However, it omits the 'details' parameter and does not mention any prerequisites like authentication beyond 'owner only', leaving a couple of minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, so the description must compensate. It explains the impact of editing title, description, price, currency, and location, but completely omits the 'details' parameter entirely, leaving agents unaware of its existence and semantics. While it adds context for the fields it lists, the omission is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Edit fields (title, description, price, currency, location) on one of the USER'S OWN listings'. It specifies the resource (listings), the action (edit), and the ownership scope, distinguishing it from sibling tools like create_listing, delete_listing, and update_listing_images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives: 'Only the owner can edit' and 'vertical/intent_type/role are fixed (publish a new listing to change those)' directly name an alternative action for unsupported edits. It also warns about moderation re-triggers and price lock rejection, giving clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_listing_imagesAInspect
Add and/or remove photos on one of the USER'S OWN existing listings (max 6 total). First call request_image_upload for each new image and upload the bytes, then pass the returned keys in add. Adding any image re-triggers AI moderation — the listing returns to 'pending' until the new images are cleared; removing images does not. Free (no credit).
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Image keys from request_image_upload to attach (upload the bytes first). Each newly-added image is AI-moderated with the listing, so the listing returns to "pending" until cleared. Max 6 images total on a listing. | |
| remove | No | Image keys currently on the listing to detach. | |
| listing_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| listing | Yes | |
| success | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It reveals critical traits: adding images causes the listing to return to 'pending' pending moderation, removing images does not, and the operation is free (no credit). This goes well beyond a generic update and gives agents necessary expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact—two sentences—and front-loads the core purpose and limits. Every sentence contributes value: the first states the action and constraint, the second provides the workflow and behavioral nuances. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (so return values need no explanation), sibling tools, and moderate complexity, the description fully covers the necessary context: ownership, sequence, moderation impact, credit cost, and image limit. It is sufficient for an agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (add and remove have descriptions, listing_id does not). The description adds workflow context for `add` by referencing request_image_upload keys and reinforcing the moderation consequence, which complements the schema. However, it doesn't explain the listing_id parameter beyond the field name, slightly limiting full semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Add and/or remove photos on one of the USER'S OWN existing listings (max 6 total).' It identifies the specific verb (add/remove), the resource (photos on a listing), and ownership restriction, distinguishing it from siblings like update_listing and request_image_upload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'First call request_image_upload for each new image and upload the bytes, then pass the returned keys in `add`.' It also notes the behavioral distinction that adding images re-triggers moderation while removing does not, giving clear context for when to perform each action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceGTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.111111MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.6MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1901MIT