Skip to main content
Glama

get_access_point_churn

Read-only

Get an access point's churn

An Access Point's joiner / mover / leaver activity over a period: a daily category series with derived net growth, period totals, and the 'won from / lost to' counterpart breakdown. Joiners are first-ever serving seats (from 2026-08-02 onward, first-full-deep-sweep completion); movers change Provider (both sides resolved to the current identity); leavers deregister while served. Defaults to the trailing 30 days.

A Vendor key (v-<slug>) returns the same shape for the Vendor, from a daily comparison of its membership. Movement is counted from churn_since; there is no history before it. A counterpart is a Provider or another Vendor (kind). match_totals and the newly_matched / no_longer_matched series count membership changes with no real event behind them (a signal appeared or disappeared): they are a data-quality figure, not movement, and are never in net_growth.

For a Provider key, counterpart_flow gives each mover side (out, in) its top counterpart with its share and the effective number of counterparts, over the requested period. The share is null under 25 movers on that side and the effective number under 100. A Vendor key has no counterpart_flow.

PLATFORM MOVES. A mover is a platform move when the platform that serves the participant stayed and only the certificate Seat changed: it is not a customer decision. The verdict is per DIRECTED provider pair (from → to), over all its movers since 2026-08-02, with one of two reasons (same_host, sub_provider): at least 90% of the movers whose endpoint host can be compared (5 or more, and at least 50% of all movers of the pair) kept their endpoint host, or at least 90% of 25 or more movers still carry, at the new provider, the sub-provider brand of the provider they left. It is a CURRENT judgment, computed again on every rollup cycle. For a Provider key, the movers of a platform-move pair are in platform_won / platform_lost of the counterpart and not in its won / lost; the flag is per direction (counterpart → Provider, Provider → counterpart). totals.platform_in / totals.platform_out are their sums. totals.movers_in, totals.movers_out, net_growth and the daily series still count all movers. A Vendor key is not changed: its counterparts have no platform fields.

Input Schema

NameRequiredDescriptionDefault
toNoInclusive period end, `YYYY-MM-DD` UTC. Defaults to today.
keyYesThe Provider key (e.g. `c-tickstar`), or a Vendor key (`v-exact`).
fromNoInclusive period start, `YYYY-MM-DD` UTC. Defaults to 29 days before `to`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / key / description
      Previous value: -"The Provider key (e.g. `c-tickstar`)."New value: +"The Provider key (e.g. `c-tickstar`), or a Vendor key (`v-exact`)."
  2. First observed

TDQS

A3.8/5.0
Behavior5/5

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

With only readOnlyHint=true from annotations, the description carries the burden and then some: it discloses what counts as a joiner/mover/leaver, that match_totals/newly_matched are data-quality noise excluded from net_growth, that platform-move verdicts are recomputed each rollup, null thresholds (share below 25 movers, effective number below 100), and that Vendor keys lack counterpart_flow. This is far beyond what the annotation provides.

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?

Purpose is front-loaded, but the body runs several hundred words with a long CAPS-headed 'PLATFORM MOVES' block and multi-clause sentences mixing output documentation with tool behavior. Much of it is justified by the absence of an output schema, yet it remains heavier and less scannable than it needs to be.

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?

There is no output schema, so the description must explain the return shape, and it does so exhaustively: daily series, net growth, totals, counterpart_flow, platform_won/platform_lost, and key-type differences. An agent has enough to interpret results correctly without any output schema.

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 100%, so the baseline is 3, but the description adds real meaning: key accepts either a Provider key or a Vendor key (`v-<slug>`) and the output shape differs by key type, and from/to default behaviors are reinforced. That materially shapes how the key parameter should be chosen.

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 line states a specific verb+resource (get an access point's churn) and the body pins down the scope as joiner/mover/leaver activity for a single access point, which separates it from siblings like get_country_churn or get_provider_moves. It never explicitly names a sibling to route against, so it stops short of a 5.

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 description is dense with semantics but says nothing about when to pick this tool over list_access_point_churn_participants, get_country_churn, or get_provider_moves. The only usable cue is the implied default of a trailing 30 days; there are no exclusions or alternative-routing statements.

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