Skip to main content
Glama

Aggregate posts

aggregate_posts
Read-only

Use when ranking discussion, comparing participation or examining a coin’s community by factual posts, views, likes or reposts. Counts cover the complete filtered window before group pagination. metrics=counts gives activity counts; coverage adds diagnostics. Engagement requires metrics=engagement and group_by=author. Archive supports combined filters and windows up to 366 days subject to account limits; evidence_scope=live retains exactly one asset and seven days. Order by post_count_desc, summed desc counters or highest-single-post max_desc. Selected asset/author counts include known zeros; include_related_assets=true explicitly adds co-mentioned asset groups. archive is the default. Totals sum latest stored lifetime counters on ordinary posts (original and historical unknown), replies and quotes published in the window, not engagement earned in that window. Known repost target counters are excluded from the reposter’s totals. Numeric availability is returned per metric; missing is unknown, not zero. Views are not unique people, supporters or coin-attributed reach. Author IDs/handles support a follow-up get_author scoped to the same asset and dates.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNo
limitNoPage size: an integer from 1 to 50, default 20. Read additional pages with the returned cursor and unchanged query/page size.
orderNo
cursorNoPass the returned next_cursor unchanged to the same tool and connection with the original query arguments. For post searches preserve exact UTC dates, filters, order, limit, projection and mode. Omit cursor to start a new or changed query.
date_toYesExclusive UTC end; required.
metricsNocoverage
group_byNo
asset_idsNoCanonical asset IDs from resolve_assets, not tickers or provider IDs.
chain_idsNoCoin chain IDs, e.g. solana, ethereum, base, robinhood. Includes confirmed stored V1, native and multichain associations; candidates, expired and unknown associations are excluded. Posts qualify through their attached coins.
date_fromYesInclusive UTC start; required. Maximum window 366 days.
has_mediaNo
asset_typeNoKnown asset relationship. With chain_ids, type must match on one of those chains; native and token relationships may coexist across chains. Unknown has no classified relationship.
author_idsNoCanonical author IDs from search_authors, not X handles or user IDs.
multichainNoTrue selects assets with at least two known chains. False means fewer than two KNOWN chains, not proven single-chain.
post_typesNo
evidence_classNoFilter standalone collected evidence versus retained embedded quote evidence; omitted includes both.
evidence_scopeNoFor metrics=engagement only. archive is the default; live selects current website community eligibility.
exclude_post_typesNoExclude selected types; excluding original also excludes historical unknown labels, while excluding repost keeps ordinary unknown labels.
include_related_assetsNoFor asset count/coverage groups with selected asset_ids. Default returns selected canonical assets with known zeros; true deliberately includes co-mentioned asset groups.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / limit / description
      Added value: +"Page size: an integer from 1 to 50, default 20. Read additional pages with the returned cursor and unchanged query/page size."
  2. Changed3 schema fields changed
    • addedInput schema / properties / include_related_assets
      Added value: +{
      +  "description": "For asset count/coverage groups with selected asset_ids. Default returns selected canonical assets with known zeros; true deliberately includes co-mentioned asset groups.",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / order / enum
      Previous value: -[
      -  "key",
      -  "post_count_desc",
      -  "author_count_desc",
      -  "views_desc",
      -  "likes_desc",
      -  "reposts_desc"
      -]New value: +[
      +  "key",
      +  "post_count_desc",
      +  "author_count_desc",
      +  "likes_desc",
      +  "max_likes_desc",
      +  "replies_desc",
      +  "max_replies_desc",
      +  "reposts_desc",
      +  "max_reposts_desc",
      +  "quotes_desc",
      +  "max_quotes_desc",
      +  "bookmarks_desc",
      +  "max_bookmarks_desc",
      +  "views_desc",
      +  "max_views_desc"
      +]
    • addedInput schema / properties / text / properties / full_text_query / description
      Added value: +"Space-separated AND, spaced OR, quoted phrases and minus exclusions. No stemming: agent and agents differ. Unquoted parentheses unsupported; repeat common terms, e.g. AI agent OR AI agents."
  3. Changed2 schema fields changed
    • addedInput schema / properties / asset_ids / description
      Added value: +"Canonical asset IDs from resolve_assets, not tickers or provider IDs."
    • addedInput schema / properties / author_ids / description
      Added value: +"Canonical author IDs from search_authors, not X handles or user IDs."
  4. Changed1 schema field changed
    • changedInput schema / properties / exclude_post_types / description
      Previous value: -"Exclude only known types; excluding repost keeps unknown types."New value: +"Exclude selected types; excluding original also excludes historical unknown labels, while excluding repost keeps ordinary unknown labels."
  5. Changed3 schema fields changed
    • addedInput schema / properties / evidence_scope
      Added value: +{
      +  "description": "For metrics=engagement only. archive is the default; live selects current website community eligibility.",
      +  "enum": [
      +    "archive",
      +    "live"
      +  ]
      +}
    • changedInput schema / properties / metrics / enum
      Previous value: -[
      -  "counts",
      -  "coverage"
      -]New value: +[
      +  "counts",
      +  "coverage",
      +  "engagement"
      +]
    • changedInput schema / properties / order / enum
      Previous value: -[
      -  "key",
      -  "post_count_desc",
      -  "author_count_desc"
      -]New value: +[
      +  "key",
      +  "post_count_desc",
      +  "author_count_desc",
      +  "views_desc",
      +  "likes_desc",
      +  "reposts_desc"
      +]
  6. Changed1 schema field changed
    • addedInput schema / properties / cursor / description
      Added value: +"Pass the returned next_cursor unchanged to the same tool and connection with the original query arguments. For post searches preserve exact UTC dates, filters, order, limit, projection and mode. Omit cursor to start a new or changed query."
  7. Changed1 schema field changed
    • addedInput schema / properties / metrics
      Added value: +{
      +  "default": "coverage",
      +  "enum": [
      +    "counts",
      +    "coverage"
      +  ]
      +}
  8. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations cover only the safety profile (readOnly, non-destructive, not idempotent, closed world), yet the description discloses semantics far beyond them: totals sum lifetime counters of in-window posts rather than engagement earned in that window, known repost target counters are excluded from the reposter's totals, missing numeric data means unknown not zero, and views are not unique people or coin-attributed reach.

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?

Front-loaded with usage and efficient in that every sentence carries signal, but the text is a dense wall of long, clause-heavy sentences with heavy jargon and no formatting or grouping, which slows an agent's extraction of the operative constraints.

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 19-parameter aggregation tool with no output schema, the description covers the high-risk semantics (window limits, archive vs live, totals interpretation, zero-vs-missing, ordering families). Some parameters (limit, cursor, text, has_media, asset_id sourcing) are left entirely to the schema, and no return shape is sketched beyond 'numeric availability is returned per metric'.

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?

Schema coverage is 68%, and the description meaningfully supplements the remaining gaps: it explains the three metrics modes, notes coverage adds diagnostics, defines engagement's dependency on group_by=author, distinguishes summed *_desc from max_*_desc ordering, and clarifies include_related_assets=true adds co-mentioned asset groups while the default returns known zeros.

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 names the resource (discussion posts, participation, a coin's community) and the operation (ranking/counting by posts, views, likes, reposts), and 'Counts cover the complete filtered window before group pagination' clarifies it produces aggregated counts rather than raw posts. It does not explicitly name sibling tools like search_posts or get_posts, so differentiation is implied rather than stated.

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?

Opens with explicit when-to-use triggers (ranking discussion, comparing participation, examining community), and gives conditional guidance: 'Engagement requires metrics=engagement and group_by=author', 'archive is the default', and 'evidence_scope=live retains exactly one asset and seven days'. No alternatives are named, so the agent must infer that a raw post search belongs elsewhere.

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.

Resources