Discover a model
odoo_schema_discoverDiscover Odoo models matching a keyword (typo-tolerant fuzzy match) and return their field metadata, plus enrichment with info, modules, record_count, has_messaging and has_activities. Fields come back compact by default (name, type, string, relation, short help); pass verbose=true or call odoo_fields_get(model=…) for the full per-field metadata. When you only need to know which model the user means ('where are invoices stored?'), pass with_fields=false: every model comes back ranked by relevance and record count, without fields, and the keyword becomes optional. Returns a page envelope ('records' plus count / total / has_more / next_offset): when 'has_more' is true, call again with 'offset' — a smaller 'limit' returns the same leading models, not the ones you are missing.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "odoo_schema_discover"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Models per page: default 10 and at most 30 with fields, default 25 and at most 100 without. | |
| offset | No | Skip this many matches. When a result comes back with 'has_more', call again with 'next_offset' to read the rest — lowering 'limit' returns the same leading models, not the ones you are missing. | |
| keyword | No | What to look for, over the technical name, display name and description. | |
| verbose | No | ||
| with_fields | No | false: rank every model you can read, without fields — the cheap way to find a model's technical name. true (default): only the matches, each with its fields. | |
| include_relational | No |