Skip to main content
Glama

NarcoScope — illicit-economy evidence atlas

Read the official-data overview

get_overview
Read-only

Return bounded headline aggregates across official prices, seizures, overdose mortality, wastewater, and public designations.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYes
schemaYes
headlineYes
divergencesYes
generated_atYes
interpretationYes
designation_programsYes
overdose_by_substanceYes
top_seizure_countriesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "designation_programs": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "count": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "label": {
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "label",
      +          "count"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "divergences": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "demandLabel": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "demandPct": {
      +            "type": "number"
      +          },
      +          "label": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "reading": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "supplyLabel": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "supplyPct": {
      +            "type": "number"
      +          },
      +          "window": {
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "label",
      +          "window",
      +          "supplyLabel",
      +          "supplyPct",
      +          "demandLabel",
      +          "demandPct",
      +          "reading"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "generated_at": {
      +      "format": "date",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "headline": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "designations": {
      +          "minimum": 0,
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "seizureCountries": {
      +          "minimum": 0,
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "seizureYear": {
      +          "minimum": 1900,
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "usOverdoseLatest": {
      +          "minimum": 0,
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "usOverdoseWindow": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "usOverdoseYear": {
      +          "minimum": 1900,
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "usOverdoseYoY": {
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        },
      +        "wastewaterCities": {
      +          "minimum": 0,
      +          "type": [
      +            "integer",
      +            "null"
      +          ]
      +        },
      +        "worldSeizureTonnes": {
      +          "minimum": 0,
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "usOverdoseLatest",
      +        "usOverdoseYoY",
      +        "usOverdoseYear",
      +        "usOverdoseWindow",
      +        "worldSeizureTonnes",
      +        "seizureYear",
      +        "designations",
      +        "seizureCountries",
      +        "wastewaterCities"
      +      ],
      +      "type": "object"
      +    },
      +    "interpretation": {
      +      "items": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "note": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "overdose_by_substance": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "deaths": {
      +            "minimum": 0,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "label": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "substance": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "yoy": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "substance",
      +          "label",
      +          "deaths",
      +          "yoy"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "schema": {
      +      "const": "narcoscope.api.overview.v1"
      +    },
      +    "top_seizure_countries": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "iso3": {
      +            "pattern": "^[A-Z]{3}$",
      +            "type": "string"
      +          },
      +          "kg": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "name": {
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "iso3",
      +          "name",
      +          "kg"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 10,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "schema",
      +    "generated_at",
      +    "note",
      +    "headline",
      +    "overdose_by_substance",
      +    "top_seizure_countries",
      +    "designation_programs",
      +    "divergences",
      +    "interpretation"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safe read-only nature is covered. The description adds the useful behavioral note that aggregates are 'bounded' and 'headline', implying a curted summary rather than exhaustive data, but it does not describe pagination, rate limits, or other runtime behavior.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the core action and scope, and every phrase adds meaning by listing the specific data domains included. There is no redundancy.

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

Completeness5/5

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

For a zero-parameter overview tool with an output schema present, the description is sufficient: it names the data domains and the bounded/headline nature of the aggregate, while the output schema supplies the exact return structure. No critical information is missing for an agent to invoke it correctly.

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?

The input schema has zero parameters. Since there are no parameters to document, the description does not need to add parameter semantics, and the baseline of 4 applies.

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

Purpose5/5

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

The description uses a specific verb ('Return') with a concrete resource ('headline aggregates across official prices, seizures, overdose mortality, wastewater, and public designations'). It clearly identifies what the tool provides and is distinguishable from the sibling tools by focusing on the official-data overview domain.

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

Usage Guidelines3/5

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

Usage context is implied: an agent would use this when it needs a bounded official-data overview, not when it needs newsroom content, story details, or palimpsest context. However, the description does not explicitly state when to prefer it over alternatives or mention any exclusions.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.