Skip to main content
Glama

Subscribe to Alerts

subscribe
Idempotent

Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id. Requires a Pipeworx OAuth account (anonymous + BYO cannot persist subscriptions). Supported types: "sec_8k" (8-K filings matching ticker + item codes — e.g. items:["5.02"] = officer change), "polymarket_edge" (Polymarket↔Kalshi cross-venue mispricings — params:{topic:"fed"}), "fred_series" (new FRED observations — params:{series_id:"UNRATE"}). Delivery channels: feed (always on — pull via recent_alerts or GET registry.pipeworx.io/alerts.json), and optionally email (set delivery:{email:"you@x.com"}) or sms (delivery:{sms:"+15551234567"} — phone must be verified at /account first; 10/day cap).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYesSubscription type.
paramsYesType-specific filter. sec_8k: {ticker:"AAPL", items?:["5.02","1.01"]}. polymarket_edge: {topic:"fed", min_spread_bps?:500}. fred_series: {series_id:"UNRATE"}. patent_grant: {applicant:"Apple Inc."}. clinical_trial: {sponsor?:"Pfizer", condition?:"lung cancer", phase?:"PHASE3"} (sponsor or condition required).
deliveryNoOptional delivery channels in addition to the always-on persistent feed. {email:"you@x.com"} sends a templated alert per fired event. {sms:"+15551234567"} sends an SMS per event — must match the verified phone on the caller's account (verify at https://pipeworx.io/account first; 10/day cap). {webhook:"https://..."} POSTs each event JSON to your endpoint, HMAC-signed — the response includes delivery.webhook_secret (whsec_…) ONCE; verify X-Pipeworx-Signature = sha256 HMAC of "<X-Pipeworx-Timestamp>.<raw body>". Auto-disabled after 10 consecutive failing runs.

Schema Changelog

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

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Despite annotations already indicating readOnly=false, openWorld=true, and idempotent=true, the description adds valuable behavioral context: the auth requirement and persistence constraint, the always-on feed behavior, the optional email/SMS channels with a 10/day SMS cap, and the need for phone verification. These details go beyond the annotations and help the agent anticipate side effects and limitations.

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?

The description is front-loaded with purpose ('Create a proactive monitoring subscription') and organized into coherent segments (purpose, auth, types, delivery). It is on the longer side, and some content (e.g., supported types and delivery details) overlaps with the schema, but every sentence adds relevant operational detail. Slightly tighter would be better, but it's not wasteful.

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?

Given the tool's complexity (3 params, nested objects, multiple subscription types, delivery channels) and no output schema, the description is quite complete: it covers purpose, return value, auth requirements, persistence, types, delivery options, feed access, and SMS limits. It omits webhook details (though the schema covers them) and doesn't explicitly address idempotency, but these are secondary. Overall, it provides a solid operational picture.

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% and the schema itself is very detailed (e.g., params object with per-type patterns, delivery object with sms/email/webhook descriptions). The description adds some illustrative examples ('items:["5.02"] = officer change', 'params:{topic:"fed"}') but largely duplicates the schema. Baseline 3 is appropriate since the schema already carries the heavy lifting.

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 uses a specific verb and resource: 'Create a proactive monitoring subscription to a live-data event stream. Returns the new subscription id.' This clearly distinguishes it from sibling tools like list_subscriptions, unsubscribe, and recent_alerts, which are about managing or reading subscriptions/alerts.

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?

The description provides clear context: proactive monitoring vs pull (mentions 'pull via recent_alerts or GET registry.pipeworx.io/alerts.json'), and explicit prerequisites ('Requires a Pipeworx OAuth account; anonymous + BYO cannot persist subscriptions'). It does not explicitly name alternative tools for one-off queries, so it stops short of a 5.

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.9/5.0
Disambiguation2/5

Several tool clusters are near-duplicates or easy to confuse: ask_pipeworx, ask_pipeworx_beta, and ask_pipeworx_grounded are nearly identical (beta currently matches stable exactly), while polymarket_edges, polymarket_arbitrage, and bet_research all scan prediction-market opportunities with overlapping outputs. entity_profile/compare_entities/recent_changes and ai_visibility_check/scan_competitor_ai_presence add further redundancy. Despite detailed descriptions, the boundaries require careful reading, so an agent is likely to misselect.

Naming Consistency3/5

All names are snake_case and readable, with useful prefixes like ask_, polymarket_, pipeworx_, and scan_. However, conventions are mixed: verb_noun (ask_pipeworx, list_subscriptions, resolve_entity) coexists with bare nouns (datasets, metadata, query) and noun-first compounds (entity_profile, bet_research, deep_research). There is no single predictable pattern.

Tool Count2/5

34 tools is above the 25-tool threshold, and the set spans multiple unrelated domains such as data routing, prediction markets, memory, subscriptions, Virginia Open Data, AI visibility, and npm dependency checks. Several tools are effectively wrappers or near-overlaps that could be consolidated, e.g., ai_visibility_check vs scan_competitor_ai_presence and polymarket_edges vs polymarket_arbitrage. The surface feels bloated for a single server.

Completeness4/5

Within its main sub-domains the set is solid: memory has remember/recall/forget, subscriptions have subscribe/unsubscribe/list/recent_alerts, research has resolve_entity/compare_entities/entity_profile/recent_changes/validate_claim, and Polymarket has detection/arbitrage/fill-risk/edge-tracking. Minor gaps exist — no tool to fetch a raw pipeworx:// record, no write/update for Virginia Open Data, and no trade execution for prediction markets — but these do not create dead ends for a research-focused agent.