Skip to main content
Glama

Event Counts By Country

event_counts_by_country
Read-onlyIdempotent

Aggregate event and fatality counts by country over a date range. Useful for cross-country comparison and time-bounded risk snapshots.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoUnderlying-event cap (1-5000, default 5000)
regionNoOptional region restriction
event_typeNoOptional event-type restriction
event_date_toNoYYYY-MM-DD inclusive
event_date_fromNoYYYY-MM-DD inclusive

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
breakdownYesAggregated counts per country, sorted by event count descending
countriesYesNumber of countries with events
truncatedYesWhether results were capped at 5000 events
total_eventsYesTotal events processed

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "event_date_from": "2024-01-01",
      +    "event_date_to": "2024-06-30",
      +    "region": "Middle East"
      +  },
      +  {
      +    "event_date_from": "2023-01-01",
      +    "event_date_to": "2023-12-31",
      +    "event_type": "Violence against civilians"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "breakdown": {
      +      "description": "Aggregated counts per country, sorted by event count descending",
      +      "items": {
      +        "properties": {
      +          "by_type": {
      +            "additionalProperties": {
      +              "type": "number"
      +            },
      +            "description": "Event count by type",
      +            "type": "object"
      +          },
      +          "country": {
      +            "description": "Country name",
      +            "type": "string"
      +          },
      +          "events": {
      +            "description": "Total events in country",
      +            "type": "number"
      +          },
      +          "fatalities": {
      +            "description": "Total fatalities in country",
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "country",
      +          "events",
      +          "fatalities",
      +          "by_type"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "countries": {
      +      "description": "Number of countries with events",
      +      "type": "number"
      +    },
      +    "total_events": {
      +      "description": "Total events processed",
      +      "type": "number"
      +    },
      +    "truncated": {
      +      "description": "Whether results were capped at 5000 events",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "total_events",
      +    "countries",
      +    "truncated",
      +    "breakdown"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, and non-destructive hints. The description adds context that the tool groups data by country and operates over a date range, which enhances behavioral understanding beyond annotations. No contradictions.

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 two short sentences: the first states the core function, the second provides usage context. No fluff, every sentence earns its place.

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 simple aggregation tool with an output schema, the description provides the essential purpose and use case. It could be more explicit about the grouping by country and default scope, but overall is adequate given the annotations and schema coverage.

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 baseline is 3. The tool description does not add additional parameter-level meaning beyond what the schema already provides. No extra semantics needed.

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 clearly states the tool aggregates event and fatality counts by country over a date range, which is a specific verb+resource. It also explains its utility for cross-country comparison and time-bounded risk snapshots, distinguishing it from siblings like search_events or compare_entities.

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?

The description implies usage for cross-country comparison and time-bounded risk snapshots, but does not explicitly state when not to use this tool or mention alternatives among siblings. No direct exclusion or comparative guidance is provided.

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.

TDQS

A3.7/5.0
Disambiguation3/5

Many tools have overlapping purposes, especially the Pipeworx query tools (ask_pipeworx, ask_pipeworx_grounded, deep_research) which all serve similar data retrieval needs. Additionally, entity_profile, compare_entities, and recent_changes overlap in providing company information. Polymarket tools also have overlapping analysis functions. This can cause confusion for agents.

Naming Consistency2/5

Tool names are inconsistent in style and convention. Some use underscores (ai_visibility_check, ask_pipeworx), others are single words (forget, recall), and many lack a clear verb_noun pattern (pipeworx_feedback, polymarket_edges). This mixture of naming conventions reduces predictability.

Tool Count3/5

With 32 tools, the count is on the higher side but appropriate given the broad scope covering multiple domains (Pipeworx data, Polymarket betting, ACLED events, npm scanning, memory, etc.). However, some areas have only one or two tools, which feels sparse, and the overall set could be trimmed or better organized.

Completeness3/5

The tool set covers many domains but has notable gaps. For ACLED, only search and count tools exist without any update/delete capabilities. For Pipeworx, the tools are heavily read-focused with no apparent write operations. The broad scope makes completeness hard to assess, but some obvious lifecycle operations are missing.