# Search or browse the catalog

> The search_catalog MCP tool: search or browse the catalog.

`search_catalog` · read-only

[REST: `GET /v1/catalog/entities`](https://api.bymundi.com/docs/reference/catalog.entities.list.md)

## What the model reads

Searches or browses the agency's catalog (products, destinations and places): destinations (`destino`), places (`punto`), accommodation (`alojamiento`), activities and services. Filter by `kind` and `tag`. With `q`, returns one ranked page of the best matches. Without `q`, browses the most recently changed first (`deletedOnly: true` lists deleted entries you can restore); pass `nextCursor` back as `cursor` for the next page. Returns summaries; get_catalog_entity returns one entry in full.

Permissions: catalog:read.

## Input

| Field | Type | Required | Description |
|---|---|---|---|
| `q` | string |  | max 200 chars |
| `tag` | string |  | max 60 chars |
| `limit` | integer |  | 1–100, default 25 |
| `cursor` | string |  | max 500 chars |
| `kind` | "destino" \| "punto" \| "alojamiento" \| "actividad" \| "servicio" |  |  |
| `updatedSince` | datetime |  | Only entries changed at or after this instant — a polling trigger's watermark (deletes and restores count as changes). |
| `externalId` | string |  | The entry with this external id. max 200 chars |
| `includeDeleted` | boolean \| "true" \| "false" |  | Also return deleted entries (`deletedAt` set) — what a sync needs to see deletions. |
| `deletedOnly` | boolean \| "true" \| "false" |  | Only deleted entries — what can be restored. |

## Input schema (JSON)

```json
{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "tag": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "kind": {
      "type": "string",
      "enum": [
        "destino",
        "punto",
        "alojamiento",
        "actividad",
        "servicio"
      ]
    },
    "updatedSince": {
      "type": "string",
      "format": "date-time",
      "description": "Only entries changed at or after this instant — a polling trigger's watermark (deletes and restores count as changes)."
    },
    "externalId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The entry with this external id."
    },
    "includeDeleted": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string",
          "enum": [
            "true",
            "false"
          ]
        }
      ],
      "description": "Also return deleted entries (`deletedAt` set) — what a sync needs to see deletions."
    },
    "deletedOnly": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string",
          "enum": [
            "true",
            "false"
          ]
        }
      ],
      "description": "Only deleted entries — what can be restored."
    }
  },
  "additionalProperties": false
}
```
