← WebMCP Directory

Tool tree

agent-web-gateway.djrookie99.chatgpt.site

AI & AgentsTools verified
Website
Agent Web Gateway helps AI agents interact with compatible public websites through structured read-only tools.
Explore capabilities
    gateway_taskAction

    Default tool for read-only requests. Pass the user's goal largely as written, including any website URL. The gateway selects the workflow, searches, filters, ranks, and verifies results. If agent_action="answer", stop using tools for further discovery. When presentation.action="open_result" and a browser is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: gateway_task({ goal: "Find the cheapest green men's sweater on tentree.com" }).

    View tool JSON
    {
      "name": "gateway_task",
      "kind": "act",
      "impl": "imperative",
      "description": "Default tool for read-only requests. Pass the user's goal largely as written, including any website URL. The gateway selects the workflow, searches, filters, ranks, and verifies results. If agent_action=\"answer\", stop using tools for further discovery. When presentation.action=\"open_result\" and a browser is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: gateway_task({ goal: \"Find the cheapest green men's sweater on tentree.com\" }).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "goal": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000,
            "description": "The user's normal-language read-only request; pass it mostly as written."
          },
          "site": {
            "type": "string",
            "minLength": 3,
            "maxLength": 300,
            "description": "Optional public site URL or domain; a URL in goal is also extracted automatically."
          },
          "response_format": {
            "type": "string",
            "enum": [
              "concise",
              "detailed"
            ],
            "description": "Optional response size; concise is the default."
          }
        },
        "required": [
          "goal"
        ],
        "additionalProperties": false
      }
    }
    gateway_capabilitiesAction

    Use when the user asks what the gateway can do or the goal is broad or ambiguous. For a clear task, use gateway_task or the matching specialist tool directly after WebMCP discovery; never inspect the manifest first. If the result is answer-ready, stop using tools for additional gateway discovery; this planning response has no result to present.

    View tool JSON
    {
      "name": "gateway_capabilities",
      "kind": "act",
      "impl": "imperative",
      "description": "Use when the user asks what the gateway can do or the goal is broad or ambiguous. For a clear task, use gateway_task or the matching specialist tool directly after WebMCP discovery; never inspect the manifest first. If the result is answer-ready, stop using tools for additional gateway discovery; this planning response has no result to present.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "capability": {
            "type": "string",
            "enum": [
              "commerce",
              "rentals",
              "jobs",
              "all"
            ],
            "description": "Capability group to plan for; defaults to all."
          },
          "scope": {
            "type": "string",
            "enum": [
              "commerce",
              "rentals",
              "jobs",
              "diagnostics",
              "compatibility",
              "all"
            ],
            "description": "Optional planning scope; use diagnostics or compatibility only when the task needs advanced inspection."
          },
          "goal": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "description": "Optional short description of the user's goal; helps choose the narrowest recipe."
          },
          "level": {
            "type": "string",
            "enum": [
              "overview",
              "advanced"
            ],
            "description": "Use advanced only when the task explicitly needs diagnostics or compatibility detail."
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    gateway_find_toolAnswer

    Use only for uncommon functionality not covered by the normal tools. Search the bounded advanced registry once; then use gateway_call_tool with the exact returned operation. This tool does not execute anything.

    View tool JSON
    {
      "name": "gateway_find_tool",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use only for uncommon functionality not covered by the normal tools. Search the bounded advanced registry once; then use gateway_call_tool with the exact returned operation. This tool does not execute anything.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "description": "Short description of the specialist capability needed."
          },
          "scope": {
            "type": "string",
            "enum": [
              "commerce",
              "rentals",
              "jobs",
              "compatibility",
              "diagnostics",
              "all"
            ],
            "description": "Optional scope to keep discovery narrow."
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5,
            "description": "Maximum number of matching operations to return; hard cap 5."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
    gateway_call_toolAction

    Execute only the exact operation and validated arguments returned by gateway_find_tool. Use this after advanced discovery, not for normal tasks. Unknown operations, arbitrary URLs, methods, headers, code, shell, and filesystem access are rejected.

    View tool JSON
    {
      "name": "gateway_call_tool",
      "kind": "act",
      "impl": "imperative",
      "description": "Execute only the exact operation and validated arguments returned by gateway_find_tool. Use this after advanced discovery, not for normal tasks. Unknown operations, arbitrary URLs, methods, headers, code, shell, and filesystem access are rejected.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Exact registered operation name returned by gateway_find_tool."
          },
          "arguments": {
            "type": "object",
            "description": "Arguments for the selected registered operation; its existing schema is validated before execution.",
            "additionalProperties": true
          }
        },
        "required": [
          "operation",
          "arguments"
        ],
        "additionalProperties": false
      }
    }
    commerce_search_productsAction

    Search products when you already know this is a commerce task. If the user names a store, pass its URL in site; the gateway handles platform detection, acquisition, filtering, ranking, and verification. If agent_action=answer or answer_ready is true, stop using tools for further discovery. If presentation.action=open_result and a browser exists, open presentation.url once, then answer. Do not browse the source to repeat discovery. Example: query sweater, site tentree.com.

    View tool JSON
    {
      "name": "commerce_search_products",
      "kind": "act",
      "impl": "imperative",
      "description": "Search products when you already know this is a commerce task. If the user names a store, pass its URL in site; the gateway handles platform detection, acquisition, filtering, ranking, and verification. If agent_action=answer or answer_ready is true, stop using tools for further discovery. If presentation.action=open_result and a browser exists, open presentation.url once, then answer. Do not browse the source to repeat discovery. Example: query sweater, site tentree.com.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Product search terms."
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Maximum number of results to return; hard cap 20."
          },
          "min_price": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Optional minimum price; records without a verified comparable price are excluded when set."
          },
          "max_price": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Optional maximum price; records without a verified comparable price are excluded when set."
          },
          "providers": {
            "type": "array",
            "minItems": 1,
            "maxItems": 14,
            "items": {
              "type": "string",
              "enum": [
                "ikea",
                "amazon",
                "argos",
                "johnlewis",
                "shopify_represent",
                "shopify_rapanuiclothing",
                "shopify_pipandnut",
                "woocommerce_hardandware",
                "woocommerce_formnutrition",
                "woocommerce_gruum",
                "structured_decathlon",
                "structured_currys",
                "structured_dunelm"
              ],
              "description": "Commerce provider identifier."
            },
            "description": "Optional source selection when the user names providers. Otherwise the gateway picks relevant public sources; not required for normal search."
          },
          "condition": {
            "type": "string",
            "enum": [
              "all",
              "new",
              "used",
              "refurbished"
            ],
            "description": "Optional condition filter."
          },
          "site": {
            "type": "string",
            "minLength": 3,
            "maxLength": 300,
            "description": "Optional public storefront URL or domain. The gateway attempts dynamic Shopify/WooCommerce adaptation; the site need not be pre-registered."
          },
          "search_context": {
            "type": "string",
            "minLength": 3,
            "maxLength": 160,
            "description": "Optional opaque context returned by a prior search for the same storefront; enables reuse and refinement."
          },
          "audience": {
            "type": "string",
            "enum": [
              "men",
              "women",
              "kids",
              "unisex"
            ],
            "description": "Optional audience constraint; explicit values override natural-language inference."
          },
          "color": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "Optional exact or normalized color constraint."
          },
          "size": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40,
            "description": "Optional size constraint, such as S, M, L, or XL."
          },
          "in_stock": {
            "type": "boolean",
            "description": "Require the requested product variant to be explicitly available."
          },
          "sort_by": {
            "type": "string",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "rating_desc"
            ],
            "description": "Optional deterministic ordering."
          },
          "currency": {
            "type": "string",
            "enum": [
              "GBP"
            ],
            "description": "Currency for monetary fields."
          },
          "locale": {
            "type": "string",
            "enum": [
              "en-GB"
            ],
            "description": "Locale used for the UK source."
          },
          "response_format": {
            "type": "string",
            "enum": [
              "concise",
              "detailed",
              "diagnostic"
            ],
            "description": "Response size: concise by default, detailed for richer fields, diagnostic for bounded route evidence."
          },
          "include_diagnostics": {
            "type": "boolean",
            "description": "Include bounded route diagnostics for QA; omit for the compact normal response."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
    commerce_get_productAnswer

    Use only when the user asks for additional information about one returned product, or when a search next_action requests it. Do not call after an answer-ready search just to recheck it. Example: commerce_get_product({ provider: "shopify.example", product_id: "..." }). It never buys or changes state.

    View tool JSON
    {
      "name": "commerce_get_product",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use only when the user asks for additional information about one returned product, or when a search next_action requests it. Do not call after an answer-ready search just to recheck it. Example: commerce_get_product({ provider: \"shopify.example\", product_id: \"...\" }). It never buys or changes state.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "minLength": 1,
            "maxLength": 180,
            "description": "Provider that issued product_id, including a normalized dynamic Shopify/WooCommerce domain."
          },
          "product_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "The provider product ID or ASIN returned by search."
          },
          "canonical_url": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "Optional canonical URL returned by search; useful for providers whose stable path identifier is not reconstructable."
          },
          "site": {
            "type": "string",
            "minLength": 3,
            "maxLength": 300,
            "description": "Optional public storefront URL/domain for targeted dynamic detail verification."
          },
          "search_context": {
            "type": "string",
            "minLength": 3,
            "maxLength": 160,
            "description": "Optional opaque search context from commerce_search_products for cheap same-store detail reuse."
          },
          "include": {
            "type": "array",
            "maxItems": 8,
            "items": {
              "type": "string",
              "enum": [
                "price",
                "availability",
                "sizes",
                "colors",
                "variants",
                "materials",
                "description",
                "images",
                "sale",
                "provenance"
              ],
              "description": "Detail section to include."
            },
            "description": "Optional rich sections; omit for a concise verified product record."
          },
          "currency": {
            "type": "string",
            "enum": [
              "GBP"
            ],
            "description": "Currency for monetary fields."
          },
          "locale": {
            "type": "string",
            "enum": [
              "en-GB"
            ],
            "description": "Locale used for the UK source."
          },
          "response_format": {
            "type": "string",
            "enum": [
              "concise",
              "detailed",
              "diagnostic"
            ],
            "description": "Response size: concise by default, detailed for richer fields, diagnostic for bounded route evidence."
          },
          "include_diagnostics": {
            "type": "boolean",
            "description": "Include bounded route diagnostics for QA; omit for the compact normal response."
          }
        },
        "required": [
          "provider",
          "product_id"
        ],
        "additionalProperties": false
      }
    }
    jobs_searchAction

    Search public job listings when you already know this is a jobs task. The gateway handles board selection, filtering, ranking, and verification. If agent_action="answer" or the result is answer-ready, stop using tools for additional gateway discovery. If presentation.action="open_result" and browser navigation is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: jobs_search({ query: "strategy consulting", location: "London" }).

    View tool JSON
    {
      "name": "jobs_search",
      "kind": "act",
      "impl": "imperative",
      "description": "Search public job listings when you already know this is a jobs task. The gateway handles board selection, filtering, ranking, and verification. If agent_action=\"answer\" or the result is answer-ready, stop using tools for additional gateway discovery. If presentation.action=\"open_result\" and browser navigation is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: jobs_search({ query: \"strategy consulting\", location: \"London\" }).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Optional job title, skill, or keyword query."
          },
          "location": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Optional city, country, or location filter."
          },
          "remote": {
            "type": "boolean",
            "description": "Optional explicit remote-work filter."
          },
          "company": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Optional supported company or board name."
          },
          "department": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Optional department or team filter."
          },
          "employment_type": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Optional employment type or commitment filter."
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Maximum number of results to return; hard cap 20."
          },
          "sort_by": {
            "type": "string",
            "enum": [
              "relevance",
              "date_desc",
              "title_asc"
            ],
            "description": "Optional deterministic ordering."
          },
          "response_format": {
            "type": "string",
            "enum": [
              "concise",
              "detailed",
              "diagnostic"
            ],
            "description": "Response size: concise by default, detailed for richer fields, diagnostic for bounded route evidence."
          },
          "include_diagnostics": {
            "type": "boolean",
            "description": "Include bounded route diagnostics for QA; omit for the compact normal response."
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    jobs_get_listingAnswer

    Use only when the user asks for additional details about a listing returned by jobs_search. Pass its provider and stable ID; no application is submitted. Example: jobs_get_listing({ provider: "greenhouse", job_id: "..." }).

    View tool JSON
    {
      "name": "jobs_get_listing",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use only when the user asks for additional details about a listing returned by jobs_search. Pass its provider and stable ID; no application is submitted. Example: jobs_get_listing({ provider: \"greenhouse\", job_id: \"...\" }).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "greenhouse",
              "lever"
            ],
            "description": "Job-board platform that issued job_id."
          },
          "job_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Stable job identifier returned by jobs_search."
          },
          "company": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Optional supported company or board name when using a platform-local ID."
          },
          "canonical_url": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "Optional canonical job URL returned by search."
          },
          "response_format": {
            "type": "string",
            "enum": [
              "concise",
              "detailed",
              "diagnostic"
            ],
            "description": "Response size: concise by default, detailed for richer fields, diagnostic for bounded route evidence."
          },
          "include_diagnostics": {
            "type": "boolean",
            "description": "Include bounded route diagnostics for QA; omit for the compact normal response."
          }
        },
        "required": [
          "provider",
          "job_id"
        ],
        "additionalProperties": false
      }
    }
    rentals_search_propertiesAction

    Search public rental listings when you already know this is a rentals task. The gateway handles provider selection, filtering, ranking, and verification. If agent_action="answer" or the result is answer-ready, stop using tools for additional gateway discovery. If presentation.action="open_result" and browser navigation is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: rentals_search_properties({ location: "London", min_bedrooms: 2 }).

    View tool JSON
    {
      "name": "rentals_search_properties",
      "kind": "act",
      "impl": "imperative",
      "description": "Search public rental listings when you already know this is a rentals task. The gateway handles provider selection, filtering, ranking, and verification. If agent_action=\"answer\" or the result is answer-ready, stop using tools for additional gateway discovery. If presentation.action=\"open_result\" and browser navigation is available, open presentation.url once for final inspection, then answer; otherwise answer directly. Example: rentals_search_properties({ location: \"London\", min_bedrooms: 2 }).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "description": "Town, city, area, or postcode."
          },
          "min_bedrooms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "Minimum bedrooms."
          },
          "max_bedrooms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "Maximum bedrooms."
          },
          "min_price_pcm": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Minimum monthly rent in GBP."
          },
          "max_price_pcm": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Maximum effective monthly cost in GBP."
          },
          "radius_miles": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "Optional search radius in miles when a provider supports it."
          },
          "property_type": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "Optional property type, such as flat or house."
          },
          "furnishing": {
            "type": "string",
            "enum": [
              "furnished",
              "part_furnished",
              "unfurnished"
            ],
            "description": "Optional furnishing requirement."
          },
          "bills_included": {
            "type": "boolean",
            "description": "Require explicit evidence that bills are included."
          },
          "pets_allowed": {
            "type": "boolean",
            "description": "Require explicit evidence that pets are allowed."
          },
          "available_before": {
            "type": "string",
            "format": "date",
            "description": "Require availability on or before this date."
          },
          "freshness_days": {
            "type": "integer",
            "minimum": 0,
            "maximum": 365,
            "description": "Only include listings no older than this many days when listed date is known."
          },
          "whole_property_only": {
            "type": "boolean",
            "description": "Exclude rooms, shares, student-only, retirement, and clearly unavailable supply."
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Maximum number of results to return; hard cap 20."
          },
          "sort_by": {
            "type": "string",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "freshest"
            ],
            "description": "Optional deterministic ordering."
          },
          "providers": {
            "type": "array",
            "minItems": 1,
            "maxItems": 2,
            "items": {
              "type": "string",
              "enum": [
                "onthemarket",
                "openrent"
              ],
              "description": "Rental provider identifier."
            },
            "description": "Optional provider allow-list. Defaults to OnTheMarket and OpenRent."
          },
          "exclude_listing_ids": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "description": "Stable listing IDs already seen by the caller."
          },
          "exclude_urls": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            },
            "description": "Canonical listing URLs already seen by the caller."
          },
          "response_format": {
            "type": "string",
            "enum": [
              "concise",
              "detailed",
              "diagnostic"
            ],
            "description": "Response size: concise by default, detailed for richer fields, diagnostic for bounded route evidence."
          },
          "include_diagnostics": {
            "type": "boolean",
            "description": "Include bounded route diagnostics for QA; omit for the compact normal response."
          }
        },
        "required": [
          "location"
        ],
        "additionalProperties": false
      }
    }
    rentals_get_listingAnswer

    Use only when the user asks for additional details about one listing returned by rentals_search_properties, or when a search next_action requests verification. Pass its provider and stable ID. No application or booking is performed. Example: rentals_get_listing({ provider: "openrent", listing_id: "..." }).

    View tool JSON
    {
      "name": "rentals_get_listing",
      "kind": "answer",
      "impl": "imperative",
      "description": "Use only when the user asks for additional details about one listing returned by rentals_search_properties, or when a search next_action requests verification. Pass its provider and stable ID. No application or booking is performed. Example: rentals_get_listing({ provider: \"openrent\", listing_id: \"...\" }).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "onthemarket",
              "openrent"
            ],
            "description": "Provider that issued listing_id."
          },
          "listing_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160,
            "description": "Stable listing ID returned by rentals_search_properties."
          },
          "canonical_url": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "Canonical listing URL returned by search; required for OpenRent when the slug is not otherwise known."
          },
          "response_format": {
            "type": "string",
            "enum": [
              "concise",
              "detailed",
              "diagnostic"
            ],
            "description": "Response size: concise by default, detailed for richer fields, diagnostic for bounded route evidence."
          },
          "include_diagnostics": {
            "type": "boolean",
            "description": "Include bounded route diagnostics for QA; omit for the compact normal response."
          }
        },
        "required": [
          "provider",
          "listing_id"
        ],
        "additionalProperties": false
      }
    }