Skip to main content
Glama

PropLine — Sports Betting Odds & Prop Resolution

Replay missed webhook events

propline_replay_webhook_events
Read-onlyIdempotent

Re-read a webhook subscription's events in order from a cursor — answers 'my endpoint was down, what did I miss?'. Every delivery carries an X-PropLine-Sequence header, a counter monotonic WITHIN one subscription; pass the highest one the user processed as since_seq. Do NOT use the delivery id as the cursor: that id is global across all subscriptions, so gaps in it are other customers' traffic and mean nothing. Events come back OLDEST FIRST (the opposite of propline_get_webhook_deliveries, which is a newest-first debugging log). Page by passing next_seq back as since_seq while has_more is true. ALWAYS check truncated: true means events after the cursor already aged out of retention (2 days, max 5,000 deliveries per subscription) and are unrecoverable — tell the user to resync from the REST endpoints rather than reporting them caught up. latest_seq is not subject to retention, so latest_seq - next_seq is an honest 'how far behind' even when the rows are gone. Sequence numbers always increase and never repeat but are NOT guaranteed to be dense — a skipped number is normal and is not evidence of loss.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoEvents per page, 1-500. Default 100.
since_seqNoRead events after this sequence. Default 0 = from the oldest retained event (which on an established subscription will correctly report truncated: true).
webhook_idYesWebhook id (from propline_list_webhooks).

Schema Changelog

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

  1. Added

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare the operation safe/read-only, so the bar is lower, but the description goes well beyond by explaining cursor semantics, monotonic sequence numbers, delivery-id pitfalls, oldest-first ordering, pagination via next_seq, retention failure modes, and the fact that sequence numbers are not guaranteed dense. This is rich behavioral disclosure with no contradiction.

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 long but dense and every sentence earns its place. The central purpose is front-loaded, then critical gotchas (cursor misuse, retention, truncation, non-dense sequences) follow in logical order. There is no filler or repeated schema content.

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?

Despite having no output schema, the description covers the essential runtime contract: has_more, next_seq, truncated, and latest_seq are all explained, including how to compute an honest lag. The tool's complexity (pagination, retention, ordering, cursor semantics) is fully addressed, and the alternative path for unrecoverable data is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds substantial parameter-level meaning: since_seq is explained as the highest processed sequence, default 0 behavior is clarified, and pagination via passing next_seq back is explicit. It also warns against using delivery id as a cursor, which is exactly the kind of semantic nuance the schema cannot convey.

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?

States a specific verb ('Re-read'), resource ('a webhook subscription's events'), and ordering ('in order from a cursor'), with a concrete user question it answers. It also explicitly contrasts itself with propline_get_webhook_deliveries, making sibling differentiation immediate.

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

Usage Guidelines5/5

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

Gives explicit when-to-use context ('my endpoint was down, what did I miss?') and clearly names the alternative that should be used instead for debugging (propline_get_webhook_deliveries). It also instructs when to fall back to REST endpoints (on truncation), so an agent knows when not to rely on this tool.

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

A4.1/5.0
Disambiguation3/5

The tools are mostly distinct by purpose, but several overlap in areas like odds retrieval (get_odds vs get_best_line vs get_event_ev) and historical data (get_odds_history vs get_odds_closing vs export_odds_history). Descriptions are detailed and clarify distinctions, but the close functional relationships (e.g., get_event_movement vs get_odds_history) may cause selection ambiguity for an agent.

Naming Consistency4/5

The naming pattern is largely consistent: propline_<verb>_<noun> with verbs like get, list, export. Most tools follow this structure (e.g., get_event_results, list_events, list_sports). Deviations include 'propline_export_odds_history' (export instead of get) and a few longer names like 'propline_get_mlb_grand_salami' and 'propline_get_nhl_daily_goals_total' that break the simple verb_noun pattern but are still readable. Overall, the naming is predictable with minor exceptions.

Tool Count4/5

With 23 tools for a sports betting odds and prop resolution server, the count is on the higher side but still within a reasonable range given the domain's complexity (odds, EV, movement, results, player trends, webhooks, exports). Each tool serves a distinct function, though some could be consolidated (e.g., grand salami and NHL daily totals could be one). Slightly heavy but not excessive.

Completeness4/5

The tool set covers the core lifecycle: discover sports and events (list_sports, list_events), retrieve odds and markets (get_odds, list_event_markets), analyze EV and lines (get_event_ev, get_best_line, get_event_movement), track results and player stats (get_event_results, get_event_stats, get_player_history, get_player_trends), and backfill via exports. Missing features include webhook management (deliberately omitted) and possibly batch operations, but the surface is comprehensive for the stated purpose.