Skip to main content
Glama
ADIKANT

datalens-dev-mcp

by ADIKANT

dl_object_update

Destructive

Apply narrow saved-object patches with revision checks and readback; exact no-ops do not write. For existing dashboard tabs use dashboard_patch plus expected_revision: items/globalItems keyed by id with optional namespace, group_control…

Instructions

Apply narrow saved-object patches with revision checks and readback; exact no-ops do not write. For existing dashboard tabs use dashboard_patch plus expected_revision: items/globalItems keyed by id with optional namespace, group_control children via group keyed by native id, layout by i, connections by from/to, with add/update/remove and small tab metadata patches. Send only changed records, not whole tabs. Named global parameter removal uses remove_global_params. Compiled Editor updates use artifact_path. Writes retain private receipts; unknown effects are not replayed.

Input Schema

NameRequiredDescriptionDefault
changesYes
operation_idNo
delivery_modeNopublish is Dataset-only content publication and creates a new revision.save

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.2.34
    • addedInput schema / properties / changes / items / dependentSchemas / artifact_sha256
      Added value: +{
      +  "required": [
      +    "artifact_path"
      +  ]
      +}
    • addedInput schema / properties / changes / items / properties / artifact_sha256
      Added value: +{
      +  "pattern": "^[a-f0-9]{64}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / delivery_mode / description
      Added value: +"publish is Dataset-only content publication and creates a new revision."
    • changedInput schema / properties / delivery_mode / enum
      Previous value: -[
      -  "save"
      -]New value: +[
      +  "save",
      +  "publish"
      +]
  2. Changed4 schema fields changedv1.2.27
    • addedInput schema / properties / changes / items / dependentSchemas
      Added value: +{
      +  "dashboard_patch": {
      +    "properties": {
      +      "artifact_path": false,
      +      "object_type": {
      +        "const": "dashboard"
      +      },
      +      "patch": false,
      +      "remove_global_params": false
      +    },
      +    "required": [
      +      "expected_revision"
      +    ]
      +  }
      +}
    • changedInput schema / properties / changes / items / oneOf
      Previous value: -[
      -  {
      -    "required": [
      -      "patch"
      -    ]
      -  },
      -  {
      -    "required": [
      -      "artifact_path"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "required": [
      +      "patch"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "artifact_path"
      +    ]
      +  },
      +  {
      +    "properties": {
      +      "object_type": {
      +        "const": "dashboard"
      +      }
      +    },
      +    "required": [
      +      "dashboard_patch",
      +      "expected_revision"
      +    ]
      +  },
      +  {
      +    "properties": {
      +      "object_type": {
      +        "const": "dashboard"
      +      }
      +    },
      +    "required": [
      +      "remove_global_params",
      +      "expected_revision"
      +    ]
      +  }
      +]
    • addedInput schema / properties / changes / items / properties / dashboard_patch
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "tabs": {
      +      "items": {
      +        "additionalProperties": false,
      +        "anyOf": [
      +          {
      +            "required": [
      +              "patch"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "items"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "globalItems"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "layout"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "connections"
      +            ]
      +          }
      +        ],
      +        "properties": {
      +          "connections": {
      +            "additionalProperties": false,
      +            "minProperties": 1,
      +            "properties": {
      +              "add": {
      +                "items": {
      +                  "properties": {
      +                    "from": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "to": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "from",
      +                    "to"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              },
      +              "remove": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "from": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "to": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "from",
      +                    "to"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array",
      +                "uniqueItems": true
      +              },
      +              "update": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "from": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "patch": {
      +                      "minProperties": 1,
      +                      "not": {
      +                        "anyOf": [
      +                          {
      +                            "required": [
      +                              "from"
      +                            ]
      +                          },
      +                          {
      +                            "required": [
      +                              "to"
      +                            ]
      +                          }
      +                        ]
      +                      },
      +                      "type": "object"
      +                    },
      +                    "to": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "from",
      +                    "to",
      +                    "patch"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "globalItems": {
      +            "additionalProperties": false,
      +            "minProperties": 1,
      +            "properties": {
      +              "add": {
      +                "items": {
      +                  "properties": {
      +                    "id": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              },
      +              "remove": {
      +                "items": {
      +                  "oneOf": [
      +                    {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "id": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "namespace": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "id"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ]
      +                },
      +                "minItems": 1,
      +                "type": "array",
      +                "uniqueItems": true
      +              },
      +              "update": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "anyOf": [
      +                    {
      +                      "required": [
      +                        "patch"
      +                      ]
      +                    },
      +                    {
      +                      "required": [
      +                        "group"
      +                      ]
      +                    }
      +                  ],
      +                  "properties": {
      +                    "group": {
      +                      "additionalProperties": false,
      +                      "minProperties": 1,
      +                      "properties": {
      +                        "add": {
      +                          "items": {
      +                            "properties": {
      +                              "id": {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "id"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "minItems": 1,
      +                          "type": "array"
      +                        },
      +                        "remove": {
      +                          "items": {
      +                            "oneOf": [
      +                              {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              {
      +                                "additionalProperties": false,
      +                                "properties": {
      +                                  "id": {
      +                                    "minLength": 1,
      +                                    "type": "string"
      +                                  },
      +                                  "namespace": {
      +                                    "minLength": 1,
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "minItems": 1,
      +                          "type": "array",
      +                          "uniqueItems": true
      +                        },
      +                        "update": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "id": {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              "namespace": {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              "patch": {
      +                                "minProperties": 1,
      +                                "not": {
      +                                  "anyOf": [
      +                                    {
      +                                      "required": [
      +                                        "id"
      +                                      ]
      +                                    },
      +                                    {
      +                                      "required": [
      +                                        "namespace"
      +                                      ]
      +                                    }
      +                                  ]
      +                                },
      +                                "type": "object"
      +                              }
      +                            },
      +                            "required": [
      +                              "id",
      +                              "patch"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "minItems": 1,
      +                          "type": "array"
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "namespace": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "patch": {
      +                      "minProperties": 1,
      +                      "not": {
      +                        "anyOf": [
      +                          {
      +                            "required": [
      +                              "id"
      +                            ]
      +                          },
      +                          {
      +                            "required": [
      +                              "namespace"
      +                            ]
      +                          }
      +                        ]
      +                      },
      +                      "type": "object"
      +                    }
      +                  },
      +                  "required": [
      +                    "id"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "id": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "items": {
      +            "additionalProperties": false,
      +            "minProperties": 1,
      +            "properties": {
      +              "add": {
      +                "items": {
      +                  "properties": {
      +                    "id": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              },
      +              "remove": {
      +                "items": {
      +                  "oneOf": [
      +                    {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "id": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "namespace": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "id"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ]
      +                },
      +                "minItems": 1,
      +                "type": "array",
      +                "uniqueItems": true
      +              },
      +              "update": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "anyOf": [
      +                    {
      +                      "required": [
      +                        "patch"
      +                      ]
      +                    },
      +                    {
      +                      "required": [
      +                        "group"
      +                      ]
      +                    }
      +                  ],
      +                  "properties": {
      +                    "group": {
      +                      "additionalProperties": false,
      +                      "minProperties": 1,
      +                      "properties": {
      +                        "add": {
      +                          "items": {
      +                            "properties": {
      +                              "id": {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "id"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "minItems": 1,
      +                          "type": "array"
      +                        },
      +                        "remove": {
      +                          "items": {
      +                            "oneOf": [
      +                              {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              {
      +                                "additionalProperties": false,
      +                                "properties": {
      +                                  "id": {
      +                                    "minLength": 1,
      +                                    "type": "string"
      +                                  },
      +                                  "namespace": {
      +                                    "minLength": 1,
      +                                    "type": "string"
      +                                  }
      +                                },
      +                                "required": [
      +                                  "id"
      +                                ],
      +                                "type": "object"
      +                              }
      +                            ]
      +                          },
      +                          "minItems": 1,
      +                          "type": "array",
      +                          "uniqueItems": true
      +                        },
      +                        "update": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "id": {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              "namespace": {
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              "patch": {
      +                                "minProperties": 1,
      +                                "not": {
      +                                  "anyOf": [
      +                                    {
      +                                      "required": [
      +                                        "id"
      +                                      ]
      +                                    },
      +                                    {
      +                                      "required": [
      +                                        "namespace"
      +                                      ]
      +                                    }
      +                                  ]
      +                                },
      +                                "type": "object"
      +                              }
      +                            },
      +                            "required": [
      +                              "id",
      +                              "patch"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "minItems": 1,
      +                          "type": "array"
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "namespace": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "patch": {
      +                      "minProperties": 1,
      +                      "not": {
      +                        "anyOf": [
      +                          {
      +                            "required": [
      +                              "id"
      +                            ]
      +                          },
      +                          {
      +                            "required": [
      +                              "namespace"
      +                            ]
      +                          }
      +                        ]
      +                      },
      +                      "type": "object"
      +                    }
      +                  },
      +                  "required": [
      +                    "id"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "layout": {
      +            "additionalProperties": false,
      +            "minProperties": 1,
      +            "properties": {
      +              "add": {
      +                "items": {
      +                  "properties": {
      +                    "i": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "i"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              },
      +              "remove": {
      +                "items": {
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "minItems": 1,
      +                "type": "array",
      +                "uniqueItems": true
      +              },
      +              "update": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "i": {
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "patch": {
      +                      "minProperties": 1,
      +                      "not": {
      +                        "anyOf": [
      +                          {
      +                            "required": [
      +                              "i"
      +                            ]
      +                          }
      +                        ]
      +                      },
      +                      "type": "object"
      +                    }
      +                  },
      +                  "required": [
      +                    "i",
      +                    "patch"
      +                  ],
      +                  "type": "object"
      +                },
      +                "minItems": 1,
      +                "type": "array"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "patch": {
      +            "additionalProperties": false,
      +            "minProperties": 1,
      +            "properties": {
      +              "aliases": {
      +                "type": "object"
      +              },
      +              "settings": {
      +                "type": "object"
      +              },
      +              "title": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "id"
      +        ],
      +        "type": "object"
      +      },
      +      "minItems": 1,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "tabs"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / changes / items / properties / remove_global_params
      Added value: +{
      +  "items": {
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 50,
      +  "minItems": 1,
      +  "type": "array",
      +  "uniqueItems": true
      +}
  3. Addedv1.2.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructive=true, idempotent=false, and openWorld=true, so the safety profile is covered. The description adds real behavioral context beyond that: exact no-ops do not write, revision checks and readback occur, writes retain private receipts, and unknown effects are not replayed. It does not fully explain revision-mismatch handling, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core constraint is front-loaded, but the body is a dense, run-on block that is hard to parse without rereading. Most sentences carry unique information, so it is not padded, but structure and separation of the four patch modes could be far clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex mutation tool with no output schema and a large nested schema, the description covers the key modes, no-op behavior, and receipt/replay semantics adequately. Gaps remain around operation_id and delivery_mode interaction at the description level, but the schema handles the structural detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema description coverage, the description must compensate, and it does for the nested structures: it explains keying conventions (items/globalItems by id with optional namespace, group_control children via group keyed by native id, layout by i, connections by from/to) and the add/update/remove shape. It leaves operation_id and top-level changes semantics unaddressed, so it is short of complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening states a specific verb and resource: 'Apply narrow saved-object patches with revision checks and readback.' It is more precise than a bare 'update' and conveys the narrow, patch-oriented scope, though the phrase 'saved-object' is jargon that requires domain familiarity to place against siblings like dl_object_create.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It routes the agent between sub-modes explicitly: dashboard tab edits use dashboard_patch plus expected_revision, named global parameter removal uses remove_global_params, and compiled Editor updates use artifact_path. What is missing is differentiation from sibling tools (create vs publish vs update), so it is strong on intra-tool routing but silent on tool-selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.