# Example: Advanced Operations
## Get Field Information
```json
{
"tool": "odoo_fields_get",
"arguments": {
"model": "sale.order",
"fields": [],
"attributes": ["string", "type", "required", "help", "selection"]
}
}
```
## Check Access Rights
```json
{
"tool": "odoo_check_access_rights",
"arguments": {
"model": "sale.order",
"operation": "write"
}
}
```
## Get Server Version
```json
{
"tool": "odoo_version",
"arguments": {}
}
```
## Execute Custom Method
```json
{
"tool": "odoo_execute",
"arguments": {
"model": "res.partner",
"method": "name_search",
"args": ["Acme"],
"kwargs": {
"limit": 5
}
}
}
```
## Search with Complex Domain
```json
{
"tool": "odoo_search_read",
"arguments": {
"model": "sale.order",
"domain": [
"|",
"&",
["state", "=", "sale"],
["amount_total", ">", 1000],
"&",
["state", "=", "draft"],
["date_order", ">=", "2025-01-01"]
],
"fields": ["name", "partner_id", "state", "amount_total"],
"order": "amount_total DESC"
}
}
```
## Get Related Records (Many2one)
```json
{
"tool": "odoo_search_read",
"arguments": {
"model": "sale.order",
"domain": [["id", "=", 123]],
"fields": ["name", "partner_id", "user_id", "company_id"]
}
}
```
The result will include tuples like: `[partner_id: [14, "Acme Corp"]]`
## Get Records Using Child_of Operator
```json
{
"tool": "odoo_search_read",
"arguments": {
"model": "res.partner",
"domain": [["id", "child_of", 14]],
"fields": ["name", "parent_id", "type"]
}
}
```
## Count Records
```json
{
"tool": "odoo_execute",
"arguments": {
"model": "sale.order",
"method": "search_count",
"args": [[["state", "=", "sale"]]]
}
}
```
## Copy a Record
```json
{
"tool": "odoo_execute",
"arguments": {
"model": "sale.order",
"method": "copy",
"args": [123],
"kwargs": {
"default": {
"date_order": "2025-12-09"
}
}
}
}
```
## Export Data
```json
{
"tool": "odoo_execute",
"arguments": {
"model": "res.partner",
"method": "export_data",
"args": [
[14, 15, 16],
["name", "email", "phone"]
]
}
}
```
## Get Default Values for a Model
```json
{
"tool": "odoo_execute",
"arguments": {
"model": "sale.order",
"method": "default_get",
"args": [["partner_id", "date_order", "warehouse_id"]]
}
}
```
## Search for Records with Pagination
```json
{
"tool": "odoo_search",
"arguments": {
"model": "res.partner",
"domain": [["customer_rank", ">", 0]],
"offset": 0,
"limit": 50,
"order": "name ASC"
}
}
```
Next page:
```json
{
"tool": "odoo_search",
"arguments": {
"model": "res.partner",
"domain": [["customer_rank", ">", 0]],
"offset": 50,
"limit": 50,
"order": "name ASC"
}
}
```
## Call Onchange Method
```json
{
"tool": "odoo_execute",
"arguments": {
"model": "sale.order",
"method": "onchange",
"args": [
[],
{ "partner_id": 14 },
["partner_shipping_id", "payment_term_id"]
]
}
}
```