CPE & Vendors

search_products

Full-text search across product and vendor names in the CPE catalog. Returns matching product entries with their vendor. Costs 1 credit.

POST
tools/call

Cost: 1 credit per successful call  ·  Response shape: array-rows

Parameters

querystringrequired

Search term, 3–80 characters. Matched against product names and vendor names (case-insensitive substring match).

limitintegeroptionaldefault 25

Maximum number of results to return. Accepted range: 1–50.

Example invocation

Ask your agent: "Search for all Fortinet products in the CPE catalog."

curl -s https://api.edgeprotect.io/functions/v1/mcp \
  -H "Authorization: Bearer $EDGEPROTECT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_products","arguments":{"query":"forti","limit":10}}}'

Response

{
  "count": 3,
  "items": [
    {
      "name": "forticlient",
      "vendor": "fortinet",
      "is_favorited": false
    },
    {
      "name": "fortigate",
      "vendor": "fortinet",
      "is_favorited": false
    },
    {
      "name": "fortios",
      "vendor": "fortinet",
      "is_favorited": false
    }
  ],
  "generated_at": "2026-05-29T08:14:22.301Z"
}

count equals items.length and reflects the number of results returned, not the total catalog matches. Narrow your query or reduce limit if results are not specific enough.

The full MCP envelope (including _meta.edgeprotect with request ID and credit details) is described in Response Format.

Errors

Code Message When
-32602 invalid_params: query: required_string query argument is missing
-32602 invalid_params: query: length:3..80 query is shorter than 3 characters or longer than 80
-32602 invalid_params: limit: min:1 limit is less than 1
-32602 invalid_params: limit: max:50 limit exceeds 50
-32001 unauthorized API key is invalid, revoked, or not permitted from this IP
-32002 insufficient_credits Credit balance is zero; top up from the dashboard

A well-formed search that matches no products returns a successful response with { "count": 0, "items": [] } and the credit is refunded automatically.