Skip to main content
Glama

ExchangeRebel — pay-per-call APIs for AI agents (x402 on Solana)

ema_changes

Field-level change events computed between held EMA snapshot generations: per medicine when an identity is given ({ema_product_number}, or a resolved {name} / {inn}), feed-wide (all held product numbers, capped at 100 events per call, truncation flagged) when only {since} is given. Event types: added, status_changed, revision_advanced, procedure_updated, withdrawn_or_suspended_transition (a labelled subcase of status_changed, emitted additionally), field_changed — computed only from held diffs and source stamps, never inferred. since is a generation id or a UTC timestamp; a since before the first held generation is clamped to it and the clamp is stated in the payload; with no since, the window is the latest consecutive pair only. An unchanged medicine in the window delivers an explicit empty events list with covered:true — a delivered answer, not an error. Every payload carries the EMA acknowledgement + official-text-prevails lines. Free pre-check at POST /toll/ema/changes/preflight (tool ema_changes_preflight). Price: $0.01 per call (RULED). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/ema/changes.

Input Schema

NameRequiredDescriptionDefault
innNo
nameNo
sinceNo
ema_product_numberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: enumerates the six event types, discloses the 100-event cap with truncation flagging, the clamping of an out-of-range {since} with the clamp reported in the payload, the covered:true empty-list convention, the mandatory acknowledgement lines, and the x402 payment handshake. The readOnlyHint=false / idempotentHint=false annotations are consistent with the disclosed per-call charge, so nothing conflicts.

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?

Long (~200 words) but front-loaded with the core purpose and mode split, and nearly every clause carries operational information an agent needs (event types, cap, clamp, empty-list semantics, payment). The pricing/x402/HTTP-equivalent tail could be tightened, but it is not padding.

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 read-style change-feed tool with no output schema, the description still explains payload composition (events list, truncation flag, covered flag, acknowledgement lines) and the full invocation/payment flow. An agent has everything needed to call it correctly and interpret an empty result as success rather than failure.

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 description coverage is 0%, so the description carries the full burden, and it does: {since} is documented as a generation id or UTC timestamp with clamping semantics, and the three identity parameters are documented as alternative resolution paths for the same medicine. It does not state precedence if more than one identity is supplied, which is the remaining gap.

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?

States a specific verb and resource ('Field-level change events computed between held EMA snapshot generations') and immediately splits the two modes of operation (per-medicine by identity vs feed-wide). An agent can tell this is a diff/delta tool rather than a record fetch, but the description never explicitly contrasts with the closest sibling, ema_record, so the differentiation from siblings is only implicit.

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?

Gives clear selection rules: supply an identity ({ema_product_number}, {name}, {inn}) for per-medicine events, supply only {since} for feed-wide, and with no {since} the window defaults to the latest consecutive pair. It also names the alternative free path (ema_changes_preflight). It stops short of explicit 'when not to use' guidance, e.g. when a full snapshot from ema_record is more appropriate.

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