Skip to main content
Glama

Create a custom report

action1_create_report
Destructive

Create a custom report in the predefined Custom report category by specifying data sources, filters, and columns for endpoint reporting.

Instructions

Create a custom report. Creates a custom report in the predefined Custom report category. Perm: manage_reports.

Input Schema

NameRequiredDescriptionDefault
bodyYesRequest body
confirmNoRequired to execute. Exact string "YES".
dry_runNoDefault true (preview). Set false to execute.

Output Schema

NameRequiredDescriptionDefault
idNo
nameNo
selfNo
toolNo
typeNo
simpleNo
builtinNo
dry_runNo
alertableNo
filter_setNo
would_sendNo
descriptionNo
report_dataNo
data_sourcesNo
data_soursesNo
report_errorsNo
column_aliasesNo
simple_columnsNo
parent_categoryNo
summary_columnsNo
long_descriptionNo
drilldown_columnsNo
summary_customizableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed29 schema fields changedv0.6.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / body / description
      Previous value: -"Request body (schema: object)"New value: +"Request body"
    • addedInput schema / properties / body / properties
      Added value: +{
      +  "column_aliases": {
      +    "description": "A list of column aliases.",
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "data_source_id": {
      +          "description": "The ID of the data source for which the new column name is assigned.",
      +          "type": "string"
      +        },
      +        "new_name": {
      +          "description": "The new column name.",
      +          "type": "string"
      +        },
      +        "original_name": {
      +          "description": "The original column name for which the new name is assigned.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "data_sources": {
      +    "description": "Only data source ID or self is sufficient for this method.",
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "description": {
      +    "description": "The custom report description.",
      +    "type": "string"
      +  },
      +  "drilldown_columns": {
      +    "description": "A list of drilldown report data output columns.",
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "data_source_id": {
      +          "description": "The data source ID.",
      +          "type": "string"
      +        },
      +        "enabled": {
      +          "description": "Defines if a column is enabled.",
      +          "enum": [
      +            "yes",
      +            "no"
      +          ],
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "The column name.",
      +          "type": "string"
      +        },
      +        "sort": {
      +          "description": "Defines sorting settings.",
      +          "enum": [
      +            "ASC",
      +            "DESC",
      +            "none"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "filter_set": {
      +    "additionalProperties": {},
      +    "properties": {
      +      "filter_logic": {
      +        "description": "Expression to combine filters in the \"filters\" array.",
      +        "type": "string"
      +      },
      +      "filters": {
      +        "description": "An ordered list of filters to apply to a data source.",
      +        "items": {
      +          "additionalProperties": {},
      +          "propertyNames": {
      +            "type": "string"
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "name": {
      +    "description": "The report title.",
      +    "type": "string"
      +  },
      +  "simple_columns": {
      +    "description": "A list of simple report data output columns.",
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "data_source_id": {
      +          "description": "The data source ID.",
      +          "type": "string"
      +        },
      +        "enabled": {
      +          "description": "Defines if a column is enabled.",
      +          "enum": [
      +            "yes",
      +            "no"
      +          ],
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "The column name.",
      +          "type": "string"
      +        },
      +        "sort": {
      +          "description": "Defines sorting settings.",
      +          "enum": [
      +            "ASC",
      +            "DESC",
      +            "none"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "summary_columns": {
      +    "description": "A list of summary report data output columns.",
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "data_source_id": {
      +          "description": "The data source ID.",
      +          "type": "string"
      +        },
      +        "enabled": {
      +          "description": "Defines if a column is enabled.",
      +          "enum": [
      +            "yes",
      +            "no"
      +          ],
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "The column name.",
      +          "type": "string"
      +        },
      +        "sort": {
      +          "description": "Defines sorting settings.",
      +          "enum": [
      +            "ASC",
      +            "DESC",
      +            "none"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  }
      +}
    • addedInput schema / properties / body / required
      Added value: +[
      +  "name",
      +  "description",
      +  "data_sources",
      +  "filter_set",
      +  "simple_columns",
      +  "summary_columns",
      +  "drilldown_columns"
      +]
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / additionalProperties
      Previous value: -trueNew value: +{}
    • addedOutput schema / properties / alertable
      Added value: +{}
    • addedOutput schema / properties / builtin
      Added value: +{}
    • addedOutput schema / properties / column_aliases
      Added value: +{}
    • addedOutput schema / properties / data_sources
      Added value: +{}
    • addedOutput schema / properties / data_sourses
      Added value: +{}
    • addedOutput schema / properties / description
      Added value: +{}
    • addedOutput schema / properties / drilldown_columns
      Added value: +{}
    • addedOutput schema / properties / dry_run
      Added value: +{}
    • addedOutput schema / properties / filter_set
      Added value: +{}
    • addedOutput schema / properties / id
      Added value: +{}
    • addedOutput schema / properties / long_description
      Added value: +{}
    • addedOutput schema / properties / name
      Added value: +{}
    • addedOutput schema / properties / parent_category
      Added value: +{}
    • addedOutput schema / properties / report_data
      Added value: +{}
    • addedOutput schema / properties / report_errors
      Added value: +{}
    • addedOutput schema / properties / self
      Added value: +{}
    • addedOutput schema / properties / simple
      Added value: +{}
    • addedOutput schema / properties / simple_columns
      Added value: +{}
    • addedOutput schema / properties / summary_columns
      Added value: +{}
    • addedOutput schema / properties / summary_customizable
      Added value: +{}
    • addedOutput schema / properties / tool
      Added value: +{}
    • addedOutput schema / properties / type
      Added value: +{}
    • addedOutput schema / properties / would_send
      Added value: +{}
  2. First observedv0.5.0

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare the mutation profile (readOnlyHint false, destructiveHint true, non-idempotent, open-world), so the bar is lower. The description adds meaningful context beyond them: the required 'manage_reports' permission and the fact that the report is placed in the predefined Custom report category.

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

Conciseness4/5

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

It is short and front-loaded with the action, then permission. There is slight redundancy between 'Create a custom report' and 'Creates a custom report in...', but otherwise every sentence carries information.

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?

The tool is complex due to nested required body fields, but the 100% schema coverage and output schema mean the description need not restate body structure or return values. It supplies the essential permission and category context; only usage/alternative guidance is noticeably absent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents the body fields and the confirm/dry_run parameters. The description adds no parameter-level meaning beyond the schema, which is the baseline 3 for high coverage.

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 description states a specific verb and resource — 'Create a custom report' — and clarifies it lives in the predefined 'Custom report' category. It is distinguishable from list/get/update/delete report siblings, though it does not explicitly name an alternative such as create_report_subscription.

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

Usage Guidelines2/5

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

The only guidance is 'Perm: manage_reports.' There is no statement of when to use this versus create_report_subscription or update_report, and no description-level mention of the preview/confirm workflow even though the schema requires a confirm string and defaults dry_run to true.

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

Deploy Server

Other Tools