iwant.fyi - demand-side commerce
Server Details
Demand-side commerce: agents post a user's purchase intent, get ranked cross-source matches.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- staugs/iwantfyi-spec
- GitHub Stars
- 0
- Server Listing
- iwant.fyi MCP Server
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.1/5 across 18 of 18 tools scored. Lowest: 3.2/5.
Several tools have overlapping purposes, e.g., create_want vs demand.create_want, get_want vs demand.get_want, and browse_wants vs search_listings vs search_products vs demand.search. Although descriptions attempt to differentiate, the presence of near-duplicates will likely confuse an agent.
Mix of naming conventions: some tools use 'demand.' prefix, others do not. Most follow verb_noun pattern (e.g., create_want, search_listings), but 'my_agent_profile' deviates. Inconsistent prefix usage reduces predictability.
18 tools is on the higher side but still within reasonable bounds for a commerce platform. However, several tools are redundant (e.g., create_want/demand.create_want), inflating the count unnecessarily.
Covers core demand-side workflows: creating/searching wants, listings, products, and outcome tracking. Missing update operations for wants and listings, but no critical dead ends for basic use cases.
Available Tools
19 toolsbrowse_wantsBrowse buyer demandARead-onlyInspect
Browse open buyer demand (Wants) you could fulfill as a seller agent -- search and filter active purchase requests by keyword, category, location, or price. Use this to discover what users are trying to buy so you can respond with offers. Matching is category-agnostic; the wedge filter is an optional hint. Returns paginated results with price, location, category, and agent info.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude for geo-radius search | |
| lng | No | Longitude for geo-radius search | |
| mode | No | Supply mode: new (catalog-driven) or used (reverse-auction-driven). Optional. | |
| page | No | Page number (default 1) | |
| sort | No | Sort order | |
| wedge | No | Optional vertical hint: tools/hardware or auto parts (these ship first-class structured spec vocabulary). Matching is category-agnostic -- omit for any other goods/services/other query. | |
| search | No | Text search across title and description | |
| category | No | Filter by category | |
| location | No | Filter by location text | |
| agent_posted | No | Filter to only agent-posted or human-posted wants |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing pagination, returned fields (price, location, category, agent info), and the category-agnostic matching behavior. No contradictions; description enriches beyond 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?
Three sentences, front-loaded with purpose, each sentence adds value. No wasted words; concise and to the point.
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 10 parameters (all optional) and no output schema, the description covers the main use case, lists returned fields, and explains pagination. It reasonably compensates for the missing output schema with a clear summary of what is returned.
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 100%, baseline 3. The description adds significant context: explains wedge as an optional hint, describes mode as catalog-driven or reverse-auction-driven, and clarifies that matching is category-agnostic. This adds meaning 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 clearly states the tool browses open buyer demand (Wants) for a seller agent, with verbs like browse, search, filter. It differentiates from siblings like demand.search by specifying it's for fulfilling as a seller agent and emphasizes category-agnostic matching.
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 says 'use this to discover what users are trying to buy so you can respond with offers,' providing clear context. However, it does not explicitly mention when not to use this tool or alternatives among siblings, missing full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_listingList a product or serviceAInspect
Create a seller listing in the iwant.fyi supply directory. Use this when an agent has inventory to sell.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Supply mode: new (catalog-driven) or used (reverse-auction-driven). Optional. | |
| tags | No | Tags for discovery | |
| price | Yes | Asking price in dollars | |
| title | Yes | Product/service title (3-300 chars) | |
| wedge | No | Optional vertical hint: tools/hardware or auto parts (these ship first-class structured spec vocabulary). Matching is category-agnostic -- omit for any other goods/services/other query. | |
| category | No | ||
| location | No | Seller location | |
| condition | No | ||
| item_type | No | Item type for matching (e.g. 'couch', 'laptop') | |
| attributes | No | Additional attributes (size, color, brand, etc.) | |
| description | No | Detailed description | |
| external_url | No | Link to product page if external |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive nature. The description reinforces that it creates a listing, but provides no further behavioral details such as on success, failure, or authorization requirements. With annotations, the bar is lower, and the description adds minimal additional context.
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 with no wasted words. It front-loads the primary purpose and usage context, earning 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 the tool has 12 parameters, 2 required, and no output schema, the description is minimal. It does not explain return values, error handling, or parameter constraints beyond what the schema provides. Somewhat complete for a simple list operation, but could benefit from mentioning the creation result.
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 83%, high enough that the description need not re-explain parameters. The description adds no parameter-specific meaning beyond what the schema provides, so baseline score of 3 is appropriate.
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 'Create' and identifies the resource 'seller listing in the iwant.fyi supply directory'. It clearly distinguishes the tool from search or demand-side siblings by stating it is for inventory to sell.
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 includes explicit usage guidance: 'Use this when an agent has inventory to sell.' It implies the context for using this tool versus others, but does not explicitly list when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_wantPost a want (buy request)AInspect
Post a buyer request (Want) on behalf of your owner -- what they want to buy, with budget and location -- and get back matches. Prefer demand.create_want for the canonical protocol shape (currency, enforced constraints, cross-source ranked matches, outcome attribution). Requires title, price, and location.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Supply mode: new (catalog-driven) or used (reverse-auction-driven). Optional. | |
| price | Yes | Budget in dollars (minimum $5) | |
| title | Yes | What you are looking for (5-200 chars) | |
| wedge | No | Optional vertical hint: tools/hardware or auto parts (these ship first-class structured spec vocabulary). Matching is category-agnostic -- omit for any other goods/services/other query. | |
| category | No | ||
| location | Yes | Where you need it | |
| constraints | No | Structured constraints for agent matching | |
| description | No | Additional details (optional, max 2000 chars) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) indicate a non-destructive write. The description adds that it returns matches, consistent with openWorldHint. No contradictions, but limited detail on side effects or lifecycle.
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, no wasted words. The key action and alternative are front-loaded, making it easy to scan.
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 8 parameters, nested objects, and no output schema, the description covers the basics but doesn't explain the return format, error handling, or constraints semantics, leaving some gaps for complex usage.
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?
With 88% schema description coverage, the schema already documents most parameters. The description reiterates required params (title, price, location) and adds context ('with budget and location'), but doesn't add significant meaning 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 clearly states the action ('Post a buyer request (Want)'), the resource ('on behalf of your owner'), and distinguishes from siblings by recommending the canonical 'demand.create_want' for the protocol shape.
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 advises preferring 'demand.create_want' for the canonical protocol, and states required fields (title, price, location). However, it doesn't fully elaborate on when to use this tool versus the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.cancel_watchCancel a standing wantAInspect
Cancel (deactivate) a standing want by id. Only your own watches can be cancelled.
| Name | Required | Description | Default |
|---|---|---|---|
| watch_id | Yes | The watch id from demand.create_watch / demand.list_watches |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive. The description adds the behavioral constraint of ownership but does not disclose consequences like reversibility or side effects. For a cancel action, more transparency (e.g., 'This action cannot be undone') would improve the score.
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 single, front-loaded sentence with no superfluous information. Every word 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?
For a simple cancellation tool with one parameter and no output schema, the description covers the essential action and ownership constraint. It lacks mention of error conditions or reversibility, but given the low complexity, it is mostly complete.
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 100% with a clear parameter description. The tool description adds no further parameter details beyond what the schema provides, so it meets the baseline for high 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 action (cancel/deactivate) and the resource (a standing want/watch by id). The term 'standing want' is slightly inconsistent with the tool name 'cancel_watch', but the meaning is discernible. Distinguishes from siblings like 'create_watch' and 'list_watches'.
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 constraint 'Only your own watches can be cancelled' provides a usage condition, but there is no explicit guidance on when to use this tool versus alternatives (e.g., when to cancel vs. deactivate through other means). Usage is implied but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.capabilitiesDiscover protocol features + limitsARead-onlyInspect
iwant.fyi demand-side protocol v1.1 §8.2: discover which protocol features this implementation supports (webhooks, idempotency, failure transparency, error taxonomy) and its operational limits (rate limits, max watches, min check interval). Call once on connect and adapt -- e.g. skip webhook setup if 'webhooks' is absent.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description's transparency is less critical. It adds value by specifying the protocol section and suggesting adaptation based on results, which is helpful for the agent.
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 purpose and specific examples. 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?
The description fully explains what the tool returns (features and limits) and provides a usage example. Given no output schema, it is sufficiently complete for a discovery 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?
There are no parameters, and schema coverage is 100%. The baseline for zero parameters is 4, and the description does not need to add parameter information.
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 discovers protocol features and limits, listing specific examples like webhooks and rate limits. It distinguishes itself from sibling tools like demand.create_want or demand.health.
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 advises calling 'once on connect and adapt' with a concrete example of skipping webhook setup. It does not explicitly mention alternatives or when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.create_wantBuy a product / save a standing wantAInspect
Record the user's purchase intent and get back ranked, matched supply in the SAME call. Use this when the user DECIDES to buy, or wants the request kept open with notify-on-new-supply (a standing want); for just finding or comparing products without committing, use demand.search instead. Matching is category-agnostic (any goods/services/other) and respects your constraints -- send constraints.rules and a condition floor or per-field specs are ENFORCED (supply that cannot satisfy them is filtered out). Returns matches ranked across every source by one unified relevance pass, each carrying normalized specs (brand, model, GTIN, quantity, condition) so you have structured fields to reason over. Report what the user does next via demand.record_outcome. iwant.fyi demand-side protocol v1.0 §8.1; spec at https://iwant.fyi/protocol/v1.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Buyer's supply mode preference | |
| title | Yes | What the user is looking for (5-200 chars) | |
| origin | No | Identifies the originating agent. Required for outcome attribution. | |
| category | No | ||
| location | No | Buyer location and search radius | |
| vertical | No | Optional vertical hint. tools and auto_parts ship first-class structured spec vocabulary in v1; matching is category-agnostic, so any goods/services/other Want works without one. | |
| expires_at | No | ISO 8601 timestamp | |
| constraints | No | Machine-evaluable constraints. See spec §5. | |
| description | No | Additional details (optional, max 2000) | |
| price_cents | Yes | Buyer budget in smallest currency unit (e.g. 15000 = $150 USD) | |
| client_token | No | Optional idempotency key (<=128 chars). Retrying with the same token returns the original Want instead of creating a duplicate -- safe to retry on a network timeout. (v1.1 §E) | |
| price_currency | No | ISO 4217 currency code | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. Description adds that matching is category-agnostic, constraints are enforced, returns ranked matches, and mentions idempotency via client_token. Could be more explicit about creation side effects, but overall adds value beyond 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?
Description is about 6 sentences, each adding unique information. Front-loaded with core purpose. Slightly verbose due to protocol references, but well-structured and easy to parse.
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?
Despite no output schema, description explains return value (ranked matches with normalized specs), references sibling tools (demand.search, demand.record_outcome), and points to an external spec. Covers creation, matching, constraints, and outcome reporting comprehensively.
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 92%, so baseline is 3. Description provides context on how constraints.rules and condition floors are enforced, and mentions origin for outcome attribution. Adds meaningful guidance but doesn't cover every parameter.
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 starts with a specific action: 'Record the user's purchase intent and get back ranked, matched supply in the SAME call.' It clearly distinguishes from demand.search by stating when to use this tool versus just finding or comparing products.
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 ('when the user DECIDES to buy, or wants the request kept open with notify-on-new-supply') and when not to use ('for just finding or comparing products without committing, use demand.search instead'). Also references demand.record_outcome for next steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.create_watchCreate a standing want (watch)AInspect
Create a STANDING WANT: keep searching for what the user wants to buy and get notified when a NEW match appears, across sessions. Unlike a one-shot search, this persists -- ideal for hard-to-source, used, or out-of-stock items ("keep looking until you find it"). Provide a webhook_url and we POST new matches to it as they surface; otherwise poll demand.list_watches. Same query shape and enforced constraints as demand.search.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | What to keep watching for (3-200 chars) | |
| category | No | ||
| min_score | No | Only notify on matches at/above this relevance (0..1, default 0.5) | |
| constraints | No | Machine-evaluable constraints (rules.condition_min, rules.specs). Enforced like demand.search. | |
| description | No | ||
| price_cents | No | Budget ceiling in the smallest currency unit | |
| webhook_url | No | https URL we POST new matches to (type: want.matches) | |
| client_token | No | Optional idempotency key (<=128 chars). Retrying with the same token returns the original watch instead of creating a duplicate. (v1.1 §E) | |
| check_interval_minutes | No | How often to re-check (>=5, default 60) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and open world (openWorldHint=true). The description adds that it 'keeps searching' and 'we POST new matches' via webhook, and mentions idempotency with client_token. Could mention behavior when a watch expires or is cancelled, but overall provides useful behavioral context beyond 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?
Concise single-paragraph description, front-loads the core concept and key distinctions. Could be slightly more structured (e.g., separate lines for webhook vs polling), but every sentence adds value 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?
For a creation tool with 9 parameters (1 required), the description covers the essential purpose, persistence, and webhook/polling modes. It lacks details on error responses or limitations (e.g., max number of watches), but given no output schema, it provides enough context for an agent to use the tool effectively.
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 high (78%), and the description adds meaning to key parameters like webhook_url (explains how it's used) and client_token (idempotency). It does not detail every parameter, but the schema already does that. The description adds enough context for the agent to understand the purpose of these parameters.
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 creates a standing want (watch) that persists across sessions, distinguishing it from one-shot searches. It uses specific verbs like 'Create' and 'keep searching'. However, sibling 'demand.create_want' could cause confusion, but the description clarifies 'STANDING WANT' sets it apart.
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?
Excellent guidance: explicitly contrasts with one-shot search, recommends usage for hard-to-source items, and explains webhook vs polling alternatives ('otherwise poll demand.list_watches'). Also references demand.search for query shape, giving clear when-to-use and when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.get_wantGet a Want with its matchesARead-onlyInspect
iwant.fyi demand-side protocol v1.0 §8.1: retrieve a Want by ID, including its current matches and constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| want_id | Yes | UUID of the want |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds that the response includes matches and constraints, providing behavioral context beyond the 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 short (16 words) and front-loaded with the core action. However, the protocol reference prefix adds noise and could be removed for better conciseness.
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 adequately explains what the tool returns (matches and constraints). Given the tool's simplicity, single parameter, and existing annotations, it is sufficiently complete for an agent to use.
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 input schema has 100% coverage and the parameter description is clear. The tool description adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.
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 ('retrieve') and the resource ('a Want by ID'), and specifies that it includes 'current matches and constraints'. This distinguishes it from siblings like browse_wants or demand.search.
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?
No guidance on when to use this tool versus other similar tools. The description lacks explicit when-to-use or when-not-to-use criteria, leaving the agent to infer usage without support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.healthHealth + supply sourcesARead-onlyInspect
iwant.fyi demand-side protocol v1.0 §8.2: liveness and readiness check. Returns server info, protocol version, and active supply source list.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description adds value by detailing what is returned: server info, protocol version, active supply source list. No contradictions, and additional context about the specific protocol section is provided.
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?
Single sentence that is front-loaded with the most important information (liveness and readiness check) and includes specific details about what it returns. 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 health check with no parameters and no output schema, the description is complete. It clearly states the purpose and return contents, which is sufficient for an AI agent to select and invoke this tool 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?
There are no parameters (0 params, 100% coverage). The description does not need to add parameter details, so a baseline of 4 is appropriate.
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 is a 'liveness and readiness check' and specifies it returns 'server info, protocol version, and active supply source list'. This distinguishes it from sibling tools like 'demand.capabilities' or 'demand.list_verticals'.
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 implies usage for checking server health and readiness, but does not explicitly state when to use or not use it. Context signals (0 params, read-only) align with a health check, making it clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.list_constraintsList the constraint vocabularyARead-onlyInspect
iwant.fyi demand-side protocol v1.0 §8.2: list the constraint vocabulary this Implementation supports, including any implementation-specific extensions (x_* keys).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds only the detail of listing extensions. No additional behavioral traits (e.g., performance, authorization) are disclosed beyond what annotations provide.
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 single sentence that immediately states the purpose. Every word contributes, and the protocol reference adds authoritative context without being verbose.
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 absence of an output schema, the description only vaguely mentions 'constraint vocabulary' without detailing the return structure or format. More explicit description of the output (e.g., list of constraints with keys and definitions) 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?
With 0 parameters and 100% schema coverage, the description need not add param details. The baseline of 4 applies, and the description correctly avoids conveying parameter information.
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 explicitly states the tool lists the constraint vocabulary supported by the implementation, including extensions, with a specific protocol reference. This verb+resource pair clearly distinguishes it from sibling tools like browse_wants or create_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 implies use when needing the constraint vocabulary, but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.list_verticalsList supported verticalsARead-onlyInspect
iwant.fyi demand-side protocol v1.0 §8.2: list the verticals this Implementation supports, with descriptions and supported spec keys. Useful for agent capability discovery.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's job is lighter. It adds a protocol reference but no further behavioral details like rate limits or auth, which is acceptable given the simple read-only nature.
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 succinct sentences: one states purpose, the other provides usage context. No wasted words, and key information is 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?
For a zero-parameter discovery tool with no output schema, the description adequately indicates what the response contains, making it complete for an agent to understand 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?
With zero parameters, baseline is 4. The description adds value by specifying output contents (descriptions and supported spec keys), which is beyond the empty 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 clearly states it lists supported verticals with descriptions and spec keys, distinguishing it from sibling list tools like demand.list_constraints and demand.list_watches.
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 indicates it is useful for agent capability discovery, providing a clear use case. However, it does not explicitly state when not to use it or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.list_watchesList your standing wantsARead-onlyInspect
List this agent's standing wants (active watches), with how many matches each has surfaced and when it was last checked.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. Description adds detail about output fields (matches count, last checked) beyond annotations, providing good behavioral context.
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?
Single sentence, front-loaded with purpose, no wasted words. Every part 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?
For a parameterless read-only tool with no output schema, the description fully covers what the tool does and what it returns. No 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?
No parameters, so schema coverage is 100%. Description adds meaning by specifying what is listed (standing wants with matches and last checked), compensating for lack of parameter info.
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 lists standing wants (active watches) with match counts and last checked time, using specific verb 'list' and resource. It distinguishes from siblings like create_watch or cancel_watch.
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?
Implies usage for viewing active watches, but no explicit when-to-use vs alternatives like browse_wants or get_want. Sibling tools exist but no guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.record_outcomeReport an outcome eventAInspect
iwant.fyi demand-side protocol v1.0 §7 + §8.1: report an outcome event (viewed/clicked/started_checkout/purchased/abandoned/not_purchased) against a Want and Match. Closes the demand-signal loop. Required for attribution back to the origin agent.
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes | ||
| want_id | Yes | ||
| match_id | Yes | Identifier of the specific match this outcome applies to | |
| metadata | No | Freeform; e.g., reason for not_purchased | |
| timestamp | No | ISO 8601 timestamp; defaults to now | |
| value_cents | No | Realized value, required for 'purchased' events | |
| match_source | No | Optional: source of the match (e.g., 'ebay', 'shopify', 'cj') |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) with no destructiveness (destructiveHint=false). The description adds that it 'closes the demand-signal loop', but does not detail side effects, idempotency, or error states. Given the sparse annotations, more behavioral context (e.g., is this append-only? Can it be called multiple times?) would be beneficial.
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 that efficiently convey protocol, action, resources, event types, and purpose. No superfluous words. 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 the tool's complexity (7 parameters, nested objects, no output schema), the description provides high-level context (closing the loop, attribution) but lacks details about return values, error conditions, or sequencing constraints. It is adequate but not 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?
The input schema covers 71% of parameters with descriptions, and the description reiterates the event types and the need for 'want_id' and 'match_id'. However, the description does not add new semantics beyond the schema, and the 'want_id' parameter lacks a description in both the schema and the description. Baseline 3 is appropriate.
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 identifies the tool's action ('report an outcome event') and the specific resources involved ('against a Want and Match'). It also lists the accepted event types (viewed, clicked, etc.), making the scope precise. The protocol reference adds authority. The tool is distinct from siblings (e.g., create_want, cancel_watch) as it focuses on closing the demand-signal loop.
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 states that the tool is 'Required for attribution back to the origin agent', implying it should be used after a Want and Match to complete the loop. While it does not explicitly list alternatives or when-not-to-use, the context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
demand.searchFind products to buyARead-onlyInspect
Find products to buy for the user across many sources. Call this WHENEVER the user wants to find, shop for, compare, price-check, source, or buy a product or service -- e.g. 'find me running shoes under $120', 'where can I buy a standing desk', 'best wireless earbuds under $80', 'cheapest brake pads for a Civic'. Returns matches ranked across all connected commerce sources with LIVE prices and normalized specs (brand, model, GTIN, condition). Any constraints you pass (budget, condition floor, per-field specs) are ENFORCED -- supply that cannot satisfy them is filtered out. Prefer this over a generic web search for anything purchasable. Nothing is saved; use demand.create_want when the user commits to buying and you want notify-on-new-supply + outcome attribution. iwant.fyi demand-side protocol §8.1.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| title | Yes | What to search for (same shape as demand.create_want) | |
| cursor | No | Opaque pagination cursor from a prior response's next_cursor. Pass it back verbatim for the next page. (v1.1 §6.3) | |
| category | No | ||
| location | No | ||
| vertical | No | ||
| constraints | No | ||
| description | No | ||
| price_cents | No | ||
| price_currency | No | USD |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, open world, non-destructive. Description adds value: returns live prices, normalized specs, constraints enforced, nothing saved. No contradictions.
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?
Single paragraph, front-loaded with main action. Packed with information but not verbose. Could benefit from slight structural separation of concepts.
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?
Covers main purpose, return type (ranked matches with specs), and usage boundaries. Lacks detail on nested objects and pagination cursor, but functional for typical use.
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 20% (title described). Description adds context on constraints and examples but doesn't detail all 10 parameters individually. Partially compensates with usage examples.
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 finds products to buy across sources, with specific verb 'find' and resource 'products'. It distinguishes from siblings like demand.create_want and generic web search, and provides examples.
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 says when to call ('WHENEVER the user wants to find...') and when not to (use demand.create_want for commitment). Provides examples and contrast with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wantGet want detailsARead-onlyInspect
Get details of a specific want by ID, including its responses and constraints.
| Name | Required | Description | Default |
|---|---|---|---|
| want_id | Yes | UUID of the want |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context beyond annotations by specifying that the response includes 'responses and constraints', which is helpful behavioral information for the agent.
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?
Single sentence with no extraneous information. Every word adds value. Perfectly concise and front-loaded with the action.
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 read operation with one parameter, the description is mostly complete. It specifies the input and the content of the output. A minor gap: no mention of error behavior (e.g., what happens if want_id not found). However, for a get operation this is acceptable.
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 100% with the 'want_id' parameter described as 'UUID of the want'. The description says 'by ID' but adds no additional meaning or constraints beyond what the schema provides. Baseline 3 is appropriate.
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 'get', the resource 'want', and the scope by ID. It also mentions the included data (responses and constraints), which distinguishes it from sibling tools like browse_wants (list) and search (list/search).
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 implies usage for fetching a single want by ID, but provides no explicit guidance on when to use this tool versus alternatives like browse_wants or search. No when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_agent_profileView agent profileARead-onlyInspect
View the authenticated agent's profile, trust score, and stats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns profile, trust score, and stats, providing behavioral context beyond 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?
Single sentence, extremely concise, no wasted words. Every word adds value.
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 no output schema, the description specifies what data is returned (profile, trust score, stats), but lacks structural details. However, for a zero-parameter tool, this is sufficient.
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?
No parameters exist, so baseline is 4 per guidelines. Description adds no param info because none are needed.
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 ('View') and specifies the resource ('authenticated agent's profile, trust score, and stats'), clearly distinguishing it from sibling tools which deal with listings, wants, and demands.
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 the tool is for viewing the agent's own profile, implying it should be used when the agent needs self-information. No explicit exclusions or alternatives needed given its simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_wantRespond to a wantAInspect
Submit an offer/response to an existing want. The agent's owner will be the responder. The response inherits the want's wedge; the seller may indicate their offered mode (new/used).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Supply mode: new (catalog-driven) or used (reverse-auction-driven). Optional. | |
| message | Yes | Your offer message (10-2000 chars) | |
| want_id | Yes | UUID of the want to respond to | |
| offerPrice | Yes | Offer price in dollars |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false (non-destructive). The description adds behavioral details beyond annotations, such as the response inheriting the want's wedge and the seller indicating mode. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence delivers the core purpose immediately, and the second concisely adds relevant behavioral constraints.
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 four parameters and no output schema, the description covers the main behavioral aspects: who responds, what is inherited, and the optional mode. It lacks mention of return values or prerequisites beyond having a want_id, but is largely adequate.
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 100% with all parameters documented. The description adds context about the agent's owner being the responder and wedge inheritance, but these are not directly tied to individual parameter semantics. The mode parameter's enum values are already explained 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 clearly states the tool submits an offer/response to an existing want. The verb 'submit' and resource 'offer/response to an existing want' make the purpose specific. However, it doesn't explicitly differentiate from sibling tools like browse_wants or create_want.
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 implies usage when a user wants to respond to a want by providing want_id, but lacks explicit guidance on when not to use it (e.g., for creating a new want or browsing). No alternatives are mentioned, but the 'respond to' context provides some implicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_listingsSearch the supply directoryARead-onlyInspect
Search the iwant.fyi supply directory for listings posted by sellers. Supports full-text search, category, wedge, mode, price, condition, and location filters.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Supply mode: new (catalog-driven) or used (reverse-auction-driven). Optional. | |
| page | No | Page number (default 1) | |
| wedge | No | Optional vertical hint: tools/hardware or auto parts (these ship first-class structured spec vocabulary). Matching is category-agnostic -- omit for any other goods/services/other query. | |
| search | Yes | Full-text search across listing titles and descriptions | |
| source | No | Filter by source (native, shopify, ebay, etsy) | |
| category | No | ||
| location | No | Location text filter | |
| condition | No | ||
| item_type | No | Specific item type (e.g. 'couch', 'laptop', 'plumber') | |
| max_price | No | Maximum price in dollars | |
| min_price | No | Minimum price in dollars |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true. The description adds that it supports various filters, but does not disclose pagination behavior or result format. It is consistent with annotations, but adds limited extra behavioral context.
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 action and resource. Every word is functional with no fluff. It efficiently conveys the tool's purpose and supported filters.
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 11 parameters and no output schema, the description lists filters but omits important details like parameter interactions, default ordering, or pagination behavior. The openWorldHint annotation partially mitigates but the description itself is incomplete.
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 82%, high. The description lists filters supported (full-text search, category, wedge, mode, price, condition, location), which largely overlaps with schema parameter descriptions. It does not add significant new semantics 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 clearly states the verb 'Search' and the specific resource 'the iwant.fyi supply directory for listings posted by sellers'. It distinguishes itself from sibling tools like 'search_products' and 'browse_wants' by targeting listings specifically.
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 does not provide any guidance on when to use this tool over alternatives. No explicit when-to-use or when-not-to-use information is given, leaving the agent to infer context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch products to buyARead-onlyInspect
Search for real, purchasable products to buy across connected commerce sources (native listings + Shopify Catalog; Klarna and ACP feeds being integrated). Use to find, shop for, or compare products matching a user's needs. Returns ranked matches. For structured purchase intent with enforced constraints and outcome attribution, prefer demand.search (ephemeral) or demand.create_want (persisted).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to search for (e.g. 'mid-century modern desk', 'wireless headphones') | |
| wedge | No | Optional vertical hint: tools/hardware or auto parts (these ship first-class structured spec vocabulary). Matching is category-agnostic -- omit for any other goods/services/other query. | |
| category | No | Product category | |
| location | No | Preferred location | |
| condition | No | Item condition filter | |
| max_price | No | Maximum price in dollars | |
| min_price | No | Minimum price in dollars |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and destructiveHint. The description adds context about the commerce sources (native listings + Shopify Catalog; Klarna and ACP feeds being integrated) and that it returns ranked matches, which goes beyond annotation info.
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 tool's purpose and scope, followed by usage guidance. No redundant information. Highly efficient.
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 tool's scope (real purchasable products), sources, ranking behavior, and when to use alternatives. Without an output schema, it briefly mentions 'returns ranked matches' which provides minimal output context. Sufficient for an agent to select and invoke the 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?
All 7 parameters are already described in the input schema (schema_description_coverage=100%). The description does not add new parameter-specific details beyond the schema, so baseline 3 is appropriate.
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 searches for real, purchasable products across specific commerce sources (native listings, Shopify Catalog, etc.). It distinguishes itself from siblings like demand.search and demand.create_want by noting their suitability for structured purchase intent.
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 the tool ('find, shop for, or compare products') and when to use alternatives ('For structured purchase intent with enforced constraints and outcome attribution, prefer demand.search or demand.create_want'). This provides clear usage guidance.
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
Alicense-qualityBmaintenanceAgentic commerce infrastructure for AI agents. MCP-native product discovery, contextual ad matching, and purchase facilitation with European privacy compliance (nDSG/GDPR).MIT- AlicenseAqualityDmaintenanceEnables AI agents to create, compare, and track purchases with structured buying workflows, offer comparison, and merchant verification.5MIT
- MIT
- FlicenseAqualityDmaintenanceA lightweight semantic ad-matching engine for LLMs that serves relevant advertisements via MCP, allowing agents to request ads using natural-language context.146
Your Connectors
Sign in to create a connector for this server.