API-Football MCP Server
Provides comprehensive soccer/football data including standings, team search, league search, match predictions, and head-to-head records via the API-Football service.
Allow With Approval
trustsnap_b1c42dc13cfd5cb6.- Utility Coverage
- Transport Compliance
- Request Association
- Add an explicit confirm/dry-run parameter or two-step confirmation flow to write, delete, exec, and egress-capable tool…
- Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.
- Advertise a current MCP protocol revision (2025-06-18 or later) in both the initialize response and the MCP-Protocol-Ve…
- AI crawler activity
- profile / ledger inspection
Dispute this assessment
If any published claim about this server -- its score, a risk flag, a capability classification, or its taxonomy -- is factually wrong, tell us what evidence shows and we will review it. This does not require claiming or verifying ownership of the server first.
Verify responds to disputes within 5 business days and resolves them within 15.
Dispute history
No disputes filed for this server.
Risks
Security posture
Tool capability & risk inventory
| Tool | Capabilities | Risk | Findings | Notes | Evidence |
|---|---|---|---|---|---|
ask_pipeworx |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"examples": [
{
"question": "What was Apple's revenue in 2024?"
},
{
"question": "Any recent SEC filings for $NVDA?"
},
{
"question": "Current price of bitcoin"
}
],
"properties": {
"input": {
"description": "Alias for question.",
"type": "string"
},
"prompt": {
"description": "Alias for question.",
"type": "string"
},
"q": {
"description": "Alias for question.",
"type": "string"
},
"query": {
"description": "Alias for question.",
"type": "string"
},
"question": {
"description": "Your question or request in natural language. Accepts query, q, prompt, text, input as aliases.",
"type": "string"
},
"text": {
"description": "Alias for question.",
"type": "string"
}
},
"required": [
"question"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
ask_pipeworx_beta |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"input": {
"description": "Alias for question.",
"type": "string"
},
"prompt": {
"description": "Alias for question.",
"type": "string"
},
"q": {
"description": "Alias for question.",
"type": "string"
},
"query": {
"description": "Alias for question.",
"type": "string"
},
"question": {
"description": "Your question or request in natural language. Accepts query, q, prompt, text, input as aliases.",
"type": "string"
},
"text": {
"description": "Alias for question.",
"type": "string"
}
},
"required": [
"question"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
ask_pipeworx_grounded |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"input": {
"description": "Alias for question.",
"type": "string"
},
"prompt": {
"description": "Alias for question.",
"type": "string"
},
"q": {
"description": "Alias for question.",
"type": "string"
},
"query": {
"description": "Alias for question.",
"type": "string"
},
"question": {
"description": "Your question in natural language. Accepts query, q, prompt, text, input as aliases.",
"type": "string"
},
"text": {
"description": "Alias for question.",
"type": "string"
}
},
"required": [
"question"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
search_within |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"limit": {
"description": "Max passages to return (1-20, default 5).",
"type": "number"
},
"query": {
"description": "Natural-language query \u2014 what passages do you want? E.g. \"supply-chain risk\", \"fiscal year 2024 revenue\", \"drug interactions with warfarin\".",
"type": "string"
},
"text": {
"description": "The document text to search inside (max ~200K chars).",
"type": "string"
}
},
"required": [
"text",
"query"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
deep_research |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"depth": {
"description": "How many facets to research in parallel: quick=3 (single hop), standard=5 (default; adds a gap-recovery hop that re-angles unanswered facets + a contradictions[] scan across findings), thorough=8 (paid; adds a full iterative hop that chases leads + recovers gaps, plus the contradictions[] scan).",
"enum": [
"quick",
"standard",
"thorough"
],
"type": "string"
},
"question": {
"description": "The research question, in natural language. Broad/multi-part is fine \u2014 decomposition is the point.",
"type": "string"
}
},
"required": [
"question"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
discover_tools |
read | Low | freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"capabilities": [
"read"
],
"input_schema": {
"examples": [
{
"query": "look up FDA drug approvals"
},
{
"query": "analyze housing market trends"
}
],
"properties": {
"description": {
"description": "Alias for query.",
"type": "string"
},
"limit": {
"description": "Maximum number of tools to return (default 20, max 50)",
"type": "number"
},
"q": {
"description": "Alias for query.",
"type": "string"
},
"query": {
"description": "Natural language description of what you want to do (e.g., \"analyze housing market trends\", \"look up FDA drug approvals\", \"find trade data between countries\"). Accepts task, q, description, search as aliases.",
"type": "string"
},
"search": {
"description": "Alias for query.",
"type": "string"
},
"task": {
"description": "Alias for query.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"risk_flags": [
"freeform_input_surface"
]
}
Dispute this classification
|
resolve_entity |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"type": {
"description": "Entity type: \"company\" or \"drug\".",
"enum": [
"company",
"drug"
],
"type": "string"
},
"value": {
"description": "For company: ticker (AAPL), CIK (0000320193), or name. For drug: brand or generic name (e.g., \"ozempic\", \"metformin\").",
"type": "string"
}
},
"required": [
"type",
"value"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
compare_entities |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"type": {
"description": "Entity type: \"company\" or \"drug\".",
"enum": [
"company",
"drug"
],
"type": "string"
},
"values": {
"description": "For company: 2\u20135 tickers/CIKs (e.g., [\"AAPL\",\"MSFT\"]). For drug: 2\u20135 names (e.g., [\"ozempic\",\"mounjaro\"]).",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"type": "array"
}
},
"required": [
"type",
"values"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
subscribe |
write network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": false
},
"capabilities": [
"write",
"network"
],
"input_schema": {
"properties": {
"delivery": {
"description": "Optional 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 \u2014 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 \u2014 the response includes delivery.webhook_secret (whsec_\u2026) ONCE; verify X-Pipeworx-Signature = sha256 HMAC of \"<X-Pipeworx-Timestamp>.<raw body>\". Auto-disabled after 10 consecutive failing runs.",
"properties": {
"email": {
"description": "Email address to deliver alerts to. Validated against a standard pattern.",
"type": "string"
},
"sms": {
"description": "E.164 phone number, e.g. \"+15551234567\". Must match the account's verified phone.",
"type": "string"
},
"webhook": {
"description": "HTTPS URL to POST fired events to. https only; localhost/private hosts rejected. Signing secret returned once at subscribe time.",
"type": "string"
}
},
"type": "object"
},
"params": {
"description": "Type-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).",
"type": "object"
},
"type": {
"description": "Subscription type.",
"enum": [
"sec_8k",
"polymarket_edge",
"fred_series",
"patent_grant",
"clinical_trial"
],
"type": "string"
}
},
"required": [
"type",
"params"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
unsubscribe |
network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": false
},
"capabilities": [
"network"
],
"input_schema": {
"properties": {
"id": {
"description": "Subscription id (uuid) returned by subscribe.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
list_subscriptions |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"include_inactive": {
"description": "Include cancelled subscriptions in the response (default false).",
"type": "boolean"
}
},
"required": [],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
recent_alerts |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"limit": {
"description": "Max events to return (1-200, default 50).",
"type": "number"
},
"mark_read": {
"description": "Flag the returned events read in the same call (default false).",
"type": "boolean"
},
"since": {
"description": "Optional ISO timestamp \u2014 return events fired_at >= this time.",
"type": "string"
},
"type": {
"description": "Optional \u2014 filter to one subscription type.",
"type": "string"
},
"unread_only": {
"description": "Return only events where read_at is null (default false).",
"type": "boolean"
}
},
"required": [],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
entity_profile |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"type": {
"description": "Entity type. Only \"company\" supported today; person/place coming soon.",
"enum": [
"company"
],
"type": "string"
},
"value": {
"description": "Ticker (e.g., \"AAPL\") or zero-padded CIK (e.g., \"0000320193\"). Names not supported \u2014 use resolve_entity first if you only have a name.",
"type": "string"
}
},
"required": [
"type",
"value"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
recent_changes |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"since": {
"description": "Window start \u2014 ISO date (\"2026-04-01\") or relative (\"7d\", \"30d\", \"3m\", \"1y\"). Use \"30d\" or \"1m\" for typical monitoring.",
"type": "string"
},
"type": {
"description": "Entity type. Only \"company\" supported today.",
"enum": [
"company"
],
"type": "string"
},
"value": {
"description": "Ticker (e.g., \"AAPL\") or zero-padded CIK (e.g., \"0000320193\").",
"type": "string"
}
},
"required": [
"type",
"value",
"since"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
validate_claim |
read network | Medium | arbitrary network egress | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"claim": {
"description": "Natural-language factual claim, e.g., \"Apple's FY2024 revenue was $400 billion\" or \"Microsoft made about $100B in profit last year\".",
"type": "string"
},
"tolerance_pct": {
"description": "Max percent deviation still graded approximately_correct (0.5\u201350). Overrides the tolerance implied by the claim wording \u2014 set 1\u20132 for hallucination detection where any material error must be refuted. Default: implied by wording, capped at 5.",
"type": "number"
}
},
"required": [
"claim"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
scan_dependency |
read network | Medium | arbitrary network egress | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"package": {
"description": "npm package name. Scoped packages (e.g. \"@types/node\") are accepted.",
"type": "string"
},
"version": {
"description": "Specific version to check (e.g., \"18.3.1\"). Defaults to the latest published version when omitted.",
"type": "string"
}
},
"required": [
"package"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
bet_research |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"examples": [
{
"market": "will-bitcoin-reach-100k-in-july-2026"
},
{
"market": "https://polymarket.com/event/will-bitcoin-hit-150k-by-june-30-2026"
}
],
"properties": {
"depth": {
"description": "quick = 2-3 evidence sources, thorough = full fan-out. Default thorough.",
"enum": [
"quick",
"thorough"
],
"type": "string"
},
"include_raw": {
"description": "Default false. When false (recommended), FRED/FDA/GDELT/Federal-Register evidence is summarized to the few fields agents actually use \u2014 keeps responses under ~20KB. Pass true to get full upstream payloads (50KB-500KB) when you need to recompute deltas, cite specific observations, or post-process.",
"type": "boolean"
},
"market": {
"description": "Polymarket slug (\"will-bitcoin-hit-150k-by-june-30-2026\"), full URL (\"https://polymarket.com/event/...\"), or question text (\"Will Bitcoin hit $150k by June 30?\")",
"type": "string"
}
},
"required": [
"market"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
polymarket_arbitrage |
read network financial | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"financial"
],
"input_schema": {
"properties": {
"event": {
"description": "Single-event mode (use this if you know the specific Polymarket event): event slug like \"fed-decision-may-2026\" or \"when-will-bitcoin-hit-150k\". Full Polymarket URLs also accepted.",
"type": "string"
},
"topic": {
"description": "Cross-event mode (use this if you want to scan related events across the platform): a topic or seed question like \"Fed rate decision\" or \"Strait of Hormuz traffic returns to normal\". Tool searches Polymarket for related events and checks monotonicity across them.",
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
polymarket_edges |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"category_filter": {
"description": "Comma-separated list to restrict the output: \"model_driven\" (crypto_price + news_momentum), \"structural_arbitrage\" (partition_overround), \"concentrated_longshot\". Combine like \"model_driven,structural_arbitrage\". Default: all.",
"type": "string"
},
"limit": {
"description": "Top N edges to return after ranking. Default 10, max 25.",
"type": "number"
},
"max_spread_pp": {
"description": "Tradeable-edge filter. Maximum bid/ask spread in percentage points on the representative market. Default null (no filter). Set to 2 to require tight books \u2014 anything wider eats most plausible edges.",
"type": "number"
},
"min_edge_pp": {
"description": "Minimum |edge| in percentage points to include (default 0.5). Edge is evaluated NET of slippage.",
"type": "number"
},
"min_kelly": {
"description": "Minimum half-Kelly fraction (as decimal, e.g. 0.005 = 0.5% of bankroll) to include single-leg opportunities. Default 0 (no filter). Skips opportunities that are too small to bet sensibly even if the edge is large.",
"type": "number"
},
"min_liquidity": {
"description": "Tradeable-edge filter. Minimum $ liquidity on the representative market (or for partition_overround, on at least one top_leg). Default 0 (no filter). Set to 5000 to drop thin-book opportunities where executing the edge would walk the book past breakeven.",
"type": "number"
},
"min_partition_leg_kelly": {
"description": "Minimum BEST per-leg half-Kelly fraction across a partition_overround opportunity's top_legs (or longshot_basket legs). Default 0 (no filter). Partition arbs always return kelly_fraction_half=0 at the parent level by design (basket trades don't compose to single-leg Kelly), so min_kelly never filters them \u2014 this knob applies to the per-leg Kelly inside top_legs instead. Use to suppress thin partitions whose individual leg edges aren't worth the per-leg slippage cost.",
"type": "number"
},
"slippage_pp": {
"description": "Assumed execution slippage in percentage points per leg (default 0.3). Subtracted from raw |edge| before ranking and Kelly sizing. Polymarket has zero trading fees as of 2024 but bid/ask + thin depth typically eats 20-50bp per trade. Bump for very thin partitions; drop to 0 if you have a smarter fill model.",
"type": "number"
},
"window": {
"description": "Polymarket volume window to filter markets. Default 1wk.",
"enum": [
"24hr",
"1wk",
"1mo"
],
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
polymarket_kalshi_spread |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"examples": [
{
"topic": "fed"
},
{
"topic": "btc"
}
],
"properties": {
"kalshi_event_ticker": {
"description": "Explicit Kalshi event ticker, e.g. \"KXFED-26OCT\". Overrides the topic-mapped Kalshi side.",
"type": "string"
},
"polymarket_event_slug": {
"description": "Explicit Polymarket event slug, e.g. \"fed-decision-in-june-825\". Overrides the topic-mapped Polymarket side.",
"type": "string"
},
"topic": {
"description": "Pre-mapped: fed | btc | cpi | gdp | sp500 | recession | next_pope | next_uk_pm | next_israel_pm | 2028_president",
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
polymarket_fill_risk |
read network financial | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"financial"
],
"input_schema": {
"properties": {
"event": {
"description": "Basket mode: event slug or full polymarket.com URL \u2014 checks every leg of the partition.",
"type": "string"
},
"market": {
"description": "Single-market mode: market slug or full polymarket.com URL.",
"type": "string"
},
"side": {
"description": "Single-market: buy_yes | sell_yes | buy_no | sell_no (default buy_yes). Basket: sell_yes | buy_yes (default auto \u2014 sell if partition sum > 1, buy if < 1).",
"type": "string"
},
"size_usd": {
"description": "Single-market: USD to spend (buys) or target proceeds (sells). Basket: settlement notional \u2014 shares per leg, each paying $1 at resolution. Default 1000, clamp 10\u20131,000,000.",
"type": "number"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
polymarket_edge_tracker |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"days": {
"description": "Lookback in days (default 14, clamp 2-30).",
"type": "number"
},
"window": {
"description": "Which polymarket_edges window family to read snapshots for: 24hr | 1wk | 1mo (default 1wk).",
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
pipeworx_trending |
read network | Medium | arbitrary network egress | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"window": {
"description": "24h (default) | 7d | 30d. Shorter windows surface what's hot right now; longer windows show steady-state demand.",
"enum": [
"24h",
"7d",
"30d"
],
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
suggest_questions |
read network | Medium | arbitrary network egress | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"topic": {
"description": "Optional focus area: finance | pharma | economics | real-estate | betting | weather | government | science | news. Omit for a cross-category spread.",
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress"
]
}
Dispute this classification
|
generate_llms_txt |
read network | Medium | arbitrary network egress freeform input surface | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network"
],
"input_schema": {
"properties": {
"max_links": {
"description": "Maximum number of link entries to include (default 25, max 50).",
"type": "number"
},
"url": {
"description": "Full URL of the site to summarize, e.g. \"https://example.com\" or a specific landing page.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"freeform_input_surface"
]
}
Dispute this classification
|
ai_visibility_check |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"properties": {
"_apiKey": {
"description": "Optional Anthropic API key (sk-ant-...) \u2014 only needed if \"anthropic\" is in models. Passed straight through to api.anthropic.com.",
"type": "string"
},
"context": {
"description": "Optional: a phrase locating the entity (e.g. \"Boston restaurant\", \"B2B SaaS\"). Helps disambiguate common names.",
"type": "string"
},
"entity": {
"description": "The thing to ask about. Brand/business name, product name, person, or topic. E.g. \"Pipeworx\", \"OpenInvoice\", \"Acme Corp pricing\".",
"type": "string"
},
"models": {
"description": "Which models to probe. Supported: \"workers-ai\" (free default), \"anthropic\" (requires _apiKey). Omit for just workers-ai.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"entity"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
scan_competitor_ai_presence |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"properties": {
"_apiKey": {
"description": "Optional Anthropic API key \u2014 only if \"anthropic\" is in models. Passed to api.anthropic.com per probe.",
"type": "string"
},
"context": {
"description": "Optional shared context applied to every probe (e.g. \"B2B SaaS\", \"Boston restaurant\"). Disambiguates common names.",
"type": "string"
},
"entities": {
"description": "Array of 2-8 entities to compare (brand/business/product names). First entry treated as the \"subject\" for narrative; rest are competitors.",
"items": {
"type": "string"
},
"type": "array"
},
"models": {
"description": "Which models to probe. Supported: \"workers-ai\" (free default), \"anthropic\" (requires _apiKey). Omit for just workers-ai.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"entities"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
pipeworx_feedback |
secrets | Medium | secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": false,
"readOnlyHint": false
},
"capabilities": [
"secrets"
],
"input_schema": {
"properties": {
"claim_token": {
"description": "Read the reply to a report you filed earlier: pass the `pwfb_\u2026` token that filing returned, with no other arguments. Returns the status and, once resolved, what actually changed.",
"type": "string"
},
"context": {
"description": "Optional structured context: which tool, pack, or vertical this relates to.",
"properties": {
"pack": {
"description": "Pack slug (e.g., \"fred\")",
"type": "string"
},
"tool": {
"description": "Tool name (e.g., \"fred_get_series\")",
"type": "string"
},
"vertical": {
"description": "Vertical (e.g., \"housing\")",
"type": "string"
}
},
"type": "object"
},
"message": {
"description": "Your feedback in plain text. Be specific (which tool, what error, what data was missing). 1-2 sentences typical, 2000 chars max.",
"type": "string"
},
"type": {
"description": "bug = something broke or returned wrong data. feature = a new tool or capability you wish existed. data_gap = data Pipeworx does not currently expose. praise = positive note. other = anything else.",
"enum": [
"bug",
"feature",
"data_gap",
"praise",
"other"
],
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"secret_material_access"
]
}
Dispute this classification
|
remember |
write | Medium | none | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false
},
"capabilities": [
"write"
],
"input_schema": {
"properties": {
"key": {
"description": "Memory key (e.g., \"subject_property\", \"target_ticker\", \"user_preference\")",
"type": "string"
},
"value": {
"description": "Value to store (any text \u2014 findings, addresses, preferences, notes)",
"type": "string"
}
},
"required": [
"key",
"value"
],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
recall |
read | Low | none | Safeguards hinted in metadata. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
},
"capabilities": [
"read"
],
"input_schema": {
"examples": [
{
"key": "user_research_topic"
},
{}
],
"properties": {
"key": {
"description": "Memory key to retrieve (omit to list all keys)",
"type": "string"
}
},
"required": [],
"type": "object"
},
"risk_flags": []
}
Dispute this classification
|
forget |
write delete | Medium | destructive operation | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": false
},
"capabilities": [
"write",
"delete"
],
"input_schema": {
"examples": [
{
"key": "user_research_topic"
}
],
"properties": {
"key": {
"description": "Memory key to delete",
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
},
"risk_flags": [
"destructive_operation"
]
}
Dispute this classification
|
fixtures |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"cost": {
"all": 2
},
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"_apiKey": "your-api-football-api-key",
"league": 39,
"season": 2024
},
{
"_apiKey": "your-api-football-api-key",
"next": 5,
"team": 33
}
],
"properties": {
"_apiKey": {
"description": "BYO API-Football key (https://dashboard.api-football.com/register)",
"type": "string"
},
"date": {
"description": "YYYY-MM-DD \u2014 single-day fixtures",
"type": "string"
},
"last": {
"description": "Last N played matches for the team/league",
"type": "number"
},
"league": {
"description": "League ID (1 = FIFA World Cup, 39 = EPL, 140 = La Liga, 2 = Champions League \u2014 use league_search to find others)",
"type": "number"
},
"next": {
"description": "Next N upcoming matches for the team/league",
"type": "number"
},
"season": {
"description": "Season year (e.g. 2026)",
"type": "number"
},
"team": {
"description": "Team ID \u2014 use team_search to find",
"type": "number"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
standings |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"_apiKey": "your-api-football-api-key",
"league": 39,
"season": 2024
},
{
"_apiKey": "your-api-football-api-key",
"league": 140,
"season": 2024
}
],
"properties": {
"_apiKey": {
"type": "string"
},
"league": {
"description": "League ID (required)",
"type": "number"
},
"season": {
"description": "Season year (required, e.g. 2026)",
"type": "number"
}
},
"required": [
"league",
"season"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
team_search |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"cost": {
"all": 2
},
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"_apiKey": "your-api-football-api-key",
"name": "Real Madrid"
},
{
"_apiKey": "your-api-football-api-key",
"country": "England",
"name": "Manchester"
}
],
"properties": {
"_apiKey": {
"type": "string"
},
"country": {
"description": "Country name to disambiguate",
"type": "string"
},
"name": {
"description": "Team name (e.g. \"France\", \"Real Madrid\")",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
league_search |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"cost": {
"all": 2
},
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"_apiKey": "your-api-football-api-key",
"name": "Premier League"
},
{
"_apiKey": "your-api-football-api-key",
"country": "Brazil",
"name": "S\u00e9rie A"
}
],
"properties": {
"_apiKey": {
"type": "string"
},
"country": {
"description": "Country name to filter",
"type": "string"
},
"name": {
"description": "Competition name (e.g. \"World Cup\", \"Champions League\", \"Premier League\")",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
predictions |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"_apiKey": "your-api-football-api-key",
"fixture": 1234567
}
],
"properties": {
"_apiKey": {
"type": "string"
},
"fixture": {
"description": "Fixture ID \u2014 get from fixtures() output",
"type": "number"
}
},
"required": [
"fixture"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
football_injuries |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"cost": {
"all": 2
},
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"team": "AC Milan"
},
{
"league": 135,
"season": 2025
}
],
"properties": {
"_apiKey": {
"description": "BYO API-Football key (https://dashboard.api-football.com/register)",
"type": "string"
},
"league": {
"description": "League id instead of a team \u2014 use league_search to find one.",
"type": "number"
},
"season": {
"description": "Season start year, e.g. 2025. Defaults to the current season.",
"type": "number"
},
"team": {
"description": "Club name, e.g. \"AC Milan\". Resolved to its team id for you.",
"type": "string"
}
},
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
football_squad |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"cost": {
"all": 2
},
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"team": "AC Milan"
}
],
"properties": {
"_apiKey": {
"description": "BYO API-Football key.",
"type": "string"
},
"team": {
"description": "Club name, e.g. \"AC Milan\". Resolved to its team id for you.",
"type": "string"
}
},
"required": [
"team"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
h2h |
read network secrets | High | arbitrary network egress secret material access | No explicit safeguard hints detected. |
Schema & evidence{
"annotations": {
"cost": {
"all": 2
},
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": true,
"readOnlyHint": true
},
"capabilities": [
"read",
"network",
"secrets"
],
"input_schema": {
"examples": [
{
"_apiKey": "your-api-football-api-key",
"last": 10,
"team1": 33,
"team2": 34
}
],
"properties": {
"_apiKey": {
"type": "string"
},
"last": {
"description": "Last N H2H matches (default 5)",
"type": "number"
},
"team1": {
"description": "First team ID",
"type": "number"
},
"team2": {
"description": "Second team ID",
"type": "number"
}
},
"required": [
"team1",
"team2"
],
"type": "object"
},
"risk_flags": [
"arbitrary_network_egress",
"secret_material_access"
]
}
Dispute this classification
|
Write-action governance
Status detail: 10 high-risk tool(s), 1 destructive tool(s); auth boundary is oauth or auth required with 5 safeguard(s) and 5 confirmation signal(s).
| Tool | Risk | Flags | Safeguards |
|---|---|---|---|
ai_visibility_check |
High | arbitrary network egress secret material access | no |
scan_competitor_ai_presence |
High | arbitrary network egress secret material access | no |
fixtures |
High | arbitrary network egress secret material access | no |
standings |
High | arbitrary network egress secret material access | no |
team_search |
High | arbitrary network egress secret material access | no |
league_search |
High | arbitrary network egress secret material access | no |
predictions |
High | arbitrary network egress secret material access | no |
football_injuries |
High | arbitrary network egress secret material access | no |
football_squad |
High | arbitrary network egress secret material access | no |
h2h |
High | arbitrary network egress secret material access | no |
Recommended runtime policy
No policy blockers under the default policy stance.
Action-controls diff
New actions
| Action | Risk | Flags |
|---|---|---|
| No newly added actions. | ||
Changed actions
| Action | Change types | Risk |
|---|---|---|
| No materially changed actions. | ||
Critical alerts
Compatibility
Client compatibility verdicts
Client compatibility only means the server shape can work with a client. Production trust decision and write-action publishing are evaluated separately so a client-compatible server can still be blocked for production.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Errorstep_up_auth_probe• OKconnector_replay_probe• OK — Frozen tool snapshots must survive refresh.request_association_probe• Missing — Roots, sampling, and elicitation should stay request-scoped.
Evidence provenance
initialize• OKtools_list• OKtransport_compliance_probe• Error
Evidence provenance
action_safety_probe• Warning
Evidence provenance
tool_snapshot_probe• OKconnector_replay_probe• OK
Client compatibility gate details
Remediation checklist
- Resolve the transport compliance failure -- see the transport compliance probe evidence for what specifically broke.
- Limit the exposed surface to search/fetch-style read tools.
- Remove or isolate write, delete, and exec-capable tools before using this read/search-only client profile.
- Remove export, bulk, mutating, and high-blast-radius exposure before certifying company-knowledge use.
- Satisfy OAuth, compatibility, and connector-refresh requirements before using the Messages API remote MCP path.
- Resolve transport compliance issues before wider client rollout.
Remediation checklist
- Resolve the transport compliance failure -- see the transport compliance probe evidence for what specifically broke.
- Limit the exposed surface to search/fetch-style read tools.
- Remove or isolate write, delete, and exec-capable tools before using this read/search-only client profile.
- Remove export, bulk, mutating, and high-blast-radius exposure before certifying company-knowledge use.
- Satisfy OAuth, compatibility, and connector-refresh requirements before using the Messages API remote MCP path.
- Resolve transport compliance issues before wider client rollout.
Remediation checklist
- Confirm the flagged action-safety risk before treating this as write-safe.
Verdict traces
- No active alert triggers.
Client verdict trace table
| Verdict | Status | Checks | Winning source | Conflicts |
|---|---|---|---|---|
openai_connectors |
Not client-compatible | initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe | live_validation | none |
claude_desktop |
Not client-compatible | initialize, tools_list, transport_compliance_probe | live_validation | none |
unsafe_for_write_actions |
Publishing blocked | action_safety_probe | live_validation | none |
snapshot_churn_risk |
Low | tool_snapshot_probe, connector_replay_probe | history | none |
Publishability policy profiles
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: Yes
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
- Search Fetch Only: No
- Write Actions Present: Yes
- Oauth Configured: Yes
- Admin Refresh Required: No
- Safe For Company Knowledge: No
- Safe For Messages Api Remote Mcp: No
Compatibility fixtures
- remote_http_endpoint: Passes
- oauth_discovery: Passes
- frozen_tool_snapshot_refresh: Passes
- request_association: Not Assessed
- remote_transport: Passes
- tool_discovery: Passes
- auth_connect: Passes
- safe_write_review: Degraded
Recommended for
Evidence
Current trust snapshot
trustsnap_b1c42dc13cfd5cb6Canonical machine links
Evidence confidence
Latest validation evidence
Failures
openid_configurationClient error '405 Method Not Allowed' for url 'https://gateway.pipeworx.io/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405transport_compliance_probeIssues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200).
Checks
| Check | Status | Latency | Evidence |
|---|---|---|---|
action_safety_probe |
Warning | n/a | 10 high-risk, 1 destructive, 34 egress-capable, 5 declared non-read-only, non-read capabilities: write, delete, financial tool(s); auth present; safeguards=5; confirmation=compare entities, entity profile, validate claim, bet research, +1 more. |
advanced_capabilities_probe |
Warning | n/a | Only 3 capability signal(s): prompts, resources, structured outputs. |
connector_publishability_probe |
Warning | n/a | Publishability blockers: protocol version, session resume, transport compliance, request association, +1 more. |
connector_replay_probe |
OK | n/a | Backward compatible with no breaking tool-surface changes. |
determinism_probe |
OK | 42.2 ms | Check completed |
initialize |
OK | 80.7 ms | Protocol 2025-03-26 |
interactive_flow_probe |
OK | n/a | Check completed |
oauth_authorization_server |
OK | 8.8 ms | authorization_endpoint, authorization_response_iss_parameter_supported, client_id_metadata_document_supported, code_challenge_methods_supported |
oauth_protected_resource |
OK | 8.4 ms | 1 authorization server(s) |
official_registry_probe |
Missing | n/a | Check completed |
openid_configuration |
Error | 8.6 ms | Client error '405 Method Not Allowed' for url 'https://gateway.pipeworx.io/.well-known/openid-configuration' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405 |
probe_noise_resilience |
OK | 23.8 ms | Fetched https://gateway.pipeworx.io/robots.txt |
prompt_get |
Args Required | 36.0 ms | template requires args |
prompts_list |
OK | 82.7 ms | 12 prompt(s) exposed |
protocol_version_probe |
Warning | n/a | Claims 2025-03-26; 2 release(s) behind 2025-11-25. |
provenance_divergence_probe |
Not_Assessed | n/a | Check completed |
request_association_probe |
Missing | n/a | No request-association capabilities were advertised. |
resource_read |
Missing | n/a | not advertised |
resources_list |
OK | 32.4 ms | 0 resource item(s) exposed |
schema_divergence_probe |
Missing | n/a | no server card tools |
server_card |
OK | 17.9 ms | $schema, _meta, description, icons |
session_resume_probe |
Warning | n/a | no session id |
step_up_auth_probe |
OK | n/a | Scopes=pipeworx:read. |
tool_snapshot_probe |
OK | n/a | Check completed |
tools_list |
OK | 92.9 ms | 39 tool(s) exposed |
transport_compliance_probe |
Error | 38.6 ms | Issues: missing session id, missing protocol header, bad protocol not rejected (bad protocol=200). |
utility_coverage_probe |
Missing | 15.8 ms | No completions evidence; no pagination evidence; tasks missing. |
Known versions
- No versions recorded.
Public server reputation
Benchmark tasks
| Benchmark task | Status | Evidence |
|---|---|---|
| Discover tools | Passes |
|
| Read-only fetch flow | Degraded |
|
| OAuth-required connect | Passes |
|
| Safe write flow with confirmation | Degraded |
|
Utility coverage
Tool snapshot diff & changelog
Required-argument changes
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument changes detected. | ||
Output-schema drift
| Tool | Previous properties | Latest properties |
|---|---|---|
| No output-schema drift detected. | ||
Validation diff
Regressed checks: none
Improved checks: none
Newly assessed dimensions: none
No longer assessed dimensions: none
| Component | Previous | Latest | Delta |
|---|---|---|---|
connector_publishability_score | 3.0 | 2.0 | -1.0 |
Registry & provenance divergence
| Field | Registry | Live server card |
|---|---|---|
| Title | n/a | Pipeworx Gateway |
| Version | n/a | 0.1.0 |
| Homepage | n/a | n/a |
Active alerts
No active alerts for the current server state.
Aliases & registry graph
| Identifier | Source | Canonical | Identity evidence | Score |
|---|---|---|---|---|
pipeworx-io/mcp-api-football |
glama_registry | yes | canonical | 69.3 |
Alias consolidation
Strong alias identity requires matching remote URL, server-card URL, repository slug, or explicit registry cross-reference; shared provider namespace alone is not identity.
Source disagreements
| Field | What differs | Observed values |
|---|---|---|
| No source disagreements detected. | ||
Fix it
Why this score?
Algorithmic score breakdown
1 component(s) not assessed for this run: Provenance Divergence
Experimental candidate components
Actionable remediation
| Severity | Remediation | Why it matters | Recommended action |
|---|---|---|---|
| High | Add confirmation and dry-run semantics for risky actions | High-risk write, delete, exec, or egress tools should communicate safeguards clearly. | Add an explicit confirm/dry-run parameter or two-step confirmation flow to write, delete, exec, and egress-capable tools before they can make destructive changes.Playbook
|
| High | Align session and protocol behavior with Streamable HTTP expectations | Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. | Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.Playbook
|
| Medium | Adopt a current MCP protocol revision | Older protocol revisions reduce compatibility with newer clients and registry programs. | Advertise a current MCP protocol revision (2025-06-18 or later) in both the initialize response and the MCP-Protocol-Version header.Playbook
|
| Medium | Close connector-publishing gaps | Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. | Close connector-publishing gaps |
| Medium | Publish OpenID configuration | OIDC metadata improves token validation and client compatibility. | Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.Playbook
|
| Medium | Raise Adoption & Market score | Adoption clues and public evidence that the server is intended for external use. | Increase external documentation and directory coverage so users can discover and evaluate the server. |
| Medium | Support resumable HTTP sessions cleanly | Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. | Persist session state keyed by Mcp-Session-Id and honor Last-Event-ID on GET reconnects so clients can resume a dropped Streamable HTTP session.Playbook
|
| Low | Expose modern utility surfaces like completions, pagination, or tasks | Utility coverage improves interoperability with larger clients and long-lived agent workflows. | Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.Playbook
|
| Low | Publish newer MCP capability signals | Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. | Advertise only the advanced capabilities (roots, sampling, elicitation) you have actually implemented end to end in the initialize capabilities object.Playbook
|
| Low | Publish or reconcile the server in the official MCP registry | Official registry presence improves discovery confidence and cross-source consistency. | Publish or reconcile the server in the official MCP registry |
Point loss breakdown
| Component | Current | Points missing |
|---|---|---|
| Utility Coverage | 0/4 | -4.0 |
| Transport Compliance | 0/4 | -4.0 |
| Request Association | 0/4 | -4.0 |
| Recovery Semantics | 0/4 | -4.0 |
| Error Contract Quality | 1/4 | -3.0 |
| Supply Chain Signal | 1/4 | -3.0 |
| Advanced Capability Coverage | 1/4 | -3.0 |
| Spec Recency | 2/4 | -2.0 |
| Security Hygiene | 2/4 | -2.0 |
| Secret Handling Hygiene | 2/4 | -2.0 |
| Resource Contract | 2/4 | -2.0 |
| Registry Consistency | 2/4 | -2.0 |
Compatibility profiles
Connector URL: https://gateway.pipeworx.io/api-football/mcp # Complete OAuth in the client when prompted. # Server: pipeworx-io/mcp-api-football
{
"mcpServers": {
"mcp-api-football": {
"command": "npx",
"args": ["mcp-remote", "https://gateway.pipeworx.io/api-football/mcp"]
}
}
}
smithery mcp add "https://gateway.pipeworx.io/api-football/mcp"
curl -sS https://gateway.pipeworx.io/api-football/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Governance
MCP TrustOps
TrustOps turns this report into operational controls: validation targets and SLAs, authenticated validation, semantic benchmarks, policy exports, alert subscriptions, badges, cost/compliance metadata, and runtime routing. Fresh trusted index decisions stay separate from long-tail inventory so stale scores do not masquerade as current evidence.
/v1/decideAlert subscription types
MCP Runtime hosting
Verify Hosted MCP turns a trusted server report into a managed remote MCP endpoint with GitHub deployment provenance, sandbox policy, encrypted secrets, release history, rollback, and audit/usage events.
/hosted/{namespace}/{name}/mcp| Deployment | Status | Endpoint | Release |
|---|---|---|---|
| No hosted runtime deployments yet. | |||
Authenticated validation sessions
Public validation is free. Authenticated validation is paid and proves scoped behavior, write-action safeguards, and authenticated tool execution.
/v1/verify/v1/ci/previewInstall snippets
Connector URL: https://gateway.pipeworx.io/api-football/mcp # Complete OAuth in the client when prompted. # Server: pipeworx-io/mcp-api-football
{
"mcpServers": {
"mcp-api-football": {
"command": "npx",
"args": ["mcp-remote", "https://gateway.pipeworx.io/api-football/mcp"]
}
}
}
smithery mcp add "https://gateway.pipeworx.io/api-football/mcp"
curl -sS https://gateway.pipeworx.io/api-football/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'
Agent access & tool surface
tools/list, prompts/list, and resources/list checks.pipeworx-io/mcp-api-football.History
Validation history
| Timestamp | Status | Score | Latency | Tools |
|---|---|---|---|---|
| Aug 13, 2026 08:30:22 AM UTC | Healthy | 69.3 | 950.4 ms | 39 |
| Aug 12, 2026 08:06:30 PM UTC | Healthy | 69.8 | 1515.4 ms | 39 |
| Aug 12, 2026 08:01:15 AM UTC | Healthy | 69.3 | 1062.9 ms | 39 |
| Aug 11, 2026 07:51:06 PM UTC | Healthy | 69.3 | 2586.1 ms | 39 |
| Aug 11, 2026 07:42:24 AM UTC | Healthy | 68.8 | 859.0 ms | 39 |
| Aug 10, 2026 07:42:12 PM UTC | Healthy | 69.3 | 5914.9 ms | 37 |
| Aug 10, 2026 07:41:44 AM UTC | Healthy | 69.8 | 2686.7 ms | 37 |
| Aug 09, 2026 07:41:20 PM UTC | Healthy | 69.3 | 2780.4 ms | 37 |
| Aug 09, 2026 07:35:41 AM UTC | Healthy | 69.3 | 2374.6 ms | 37 |
| Aug 08, 2026 07:35:26 PM UTC | Healthy | 69.3 | 4177.6 ms | 37 |
Validation timeline
| Validated | Summary | Score | Protocol | Auth mode | Tools | High-risk tools | Changes |
|---|---|---|---|---|---|---|---|
| Aug 13, 2026 08:30:22 AM UTC | Healthy | 69.3 | 2025-03-26 | oauth_supported | 39 | 10 | none |
| Aug 12, 2026 08:06:30 PM UTC | Healthy | 69.8 | 2025-03-26 | oauth_supported | 39 | 10 | none |
| Aug 12, 2026 08:01:15 AM UTC | Healthy | 69.3 | 2025-03-26 | oauth_supported | 39 | 10 | none |
| Aug 11, 2026 07:51:06 PM UTC | Healthy | 69.3 | 2025-03-26 | oauth_supported | 39 | 10 | tool_snapshot_changed |
| Aug 11, 2026 07:42:24 AM UTC | Healthy | 68.8 | 2025-03-26 | oauth_supported | 39 | 10 | write_surface_expanded tool_snapshot_changed |
| Aug 10, 2026 07:42:12 PM UTC | Healthy | 69.3 | 2025-03-26 | oauth_supported | 37 | 8 | none |
| Aug 10, 2026 07:41:44 AM UTC | Healthy | 69.8 | 2025-03-26 | oauth_supported | 37 | 8 | none |
| Aug 09, 2026 07:41:20 PM UTC | Healthy | 69.3 | 2025-03-26 | oauth_supported | 37 | 8 | none |
| Aug 09, 2026 07:35:41 AM UTC | Healthy | 69.3 | 2025-03-26 | oauth_supported | 37 | 8 | none |
| Aug 08, 2026 07:35:26 PM UTC | Healthy | 69.3 | 2025-03-26 | oauth_supported | 37 | 8 | none |
Recent validation runs
| Started | Status | Summary | Latency | Checks |
|---|---|---|---|---|
| Aug 13, 2026 08:30:21 AM UTC | Completed | Healthy | 950.4 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 12, 2026 08:06:29 PM UTC | Completed | Healthy | 1515.4 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 12, 2026 08:01:14 AM UTC | Completed | Healthy | 1062.9 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 11, 2026 07:51:04 PM UTC | Completed | Healthy | 2586.1 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 11, 2026 07:42:24 AM UTC | Completed | Healthy | 859.0 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 10, 2026 07:42:06 PM UTC | Completed | Healthy | 5914.9 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 10, 2026 07:41:42 AM UTC | Completed | Healthy | 2686.7 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 09, 2026 07:41:17 PM UTC | Completed | Healthy | 2780.4 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 09, 2026 07:35:39 AM UTC | Completed | Healthy | 2374.6 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
| Aug 08, 2026 07:35:22 PM UTC | Completed | Healthy | 4177.6 ms | action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, schema_divergence_probe, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe |
Incident & change feed
| Timestamp | Event | Details |
|---|---|---|
| Aug 13, 2026 08:30:22 AM UTC | Latest validation: healthy | Score 69.3 with status healthy. |
| Aug 13, 2026 08:30:22 AM UTC | Score changed | Score delta -0.5 versus the previous run. |
| Aug 12, 2026 08:06:30 PM UTC | Score changed | Score delta +0.5 versus the previous run. |
Technical details
Raw evidence view
Show raw JSON evidence
Large evidence payload summarized to keep this page fast. Full raw evidence remains available from the JSON report.
{
"checks": {
"count": 27,
"items": {
"action_safety_probe": {
"auth_present": true,
"safeguard_count": 5,
"status": "warning"
},
"advanced_capabilities_probe": {
"status": "warning"
},
"connector_publishability_probe": {
"status": "warning"
},
"connector_replay_probe": {
"status": "ok"
},
"determinism_probe": {
"latency_ms": 42.22,
"status": "ok"
},
"initialize": {
"http_status": 200,
"latency_ms": 80.74,
"payload_omitted": true,
"status": "ok"
},
"interactive_flow_probe": {
"status": "ok"
},
"oauth_authorization_server": {
"http_status": 200,
"latency_ms": 8.8,
"payload_omitted": true,
"status": "ok"
},
"oauth_protected_resource": {
"http_status": 200,
"latency_ms": 8.37,
"payload_omitted": true,
"status": "ok"
},
"official_registry_probe": {
"status": "missing"
},
"openid_configuration": {
"latency_ms": 8.59,
"reason": "Client error '405 Method Not Allowed' for url 'https://gateway.pipeworx.io/.well-known/openid-configuration'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405",
"status": "error"
},
"probe_noise_resilience": {
"http_status": 200,
"latency_ms": 23.78,
"status": "ok"
},
"prompt_get": {
"http_status": 200,
"latency_ms": 36.01,
"payload_omitted": true,
"reason": "template_requires_args",
"status": "template_requires_args"
},
"prompts_list": {
"http_status": 200,
"latency_ms": 82.68,
"payload_omitted": true,
"status": "ok"
},
"protocol_version_probe": {
"status": "warning"
},
"provenance_divergence_probe": {
"status": "not_assessed"
},
"request_association_probe": {
"reason": "no_request_association_capabilities_advertised",
"status": "missing"
},
"resource_read": {
"reason": "not_advertised",
"status": "missing"
},
"resources_list": {
"http_status": 200,
"latency_ms": 32.41,
"payload_omitted": true,
"status": "ok"
},
"schema_divergence_probe": {
"reason": "no_server_card_tools",
"status": "missing"
},
"server_card": {
"http_status": 200,
"latency_ms": 17.93,
"payload_omitted": true,
"status": "ok"
},
"session_resume_probe": {
"reason": "no_session_id",
"status": "warning"
},
"step_up_auth_probe": {
"status": "ok"
},
"tool_snapshot_probe": {
"status": "ok"
},
"tools_list": {
"http_status": 200,
"latency_ms": 92.91,
"payload_omitted": true,
"status": "ok",
"tool_count": 39,
"tool_names_preview": [
"ask_pipeworx",
"ask_pipeworx_beta",
"ask_pipeworx_grounded",
"search_within",
"deep_research",
"discover_tools",
"resolve_entity",
"compare_entities",
"subscribe",
"unsubscribe",
"list_subscriptions",
"recent_alerts",
"entity_profile",
"recent_changes",
"validate_claim",
"scan_dependency",
"bet_research",
"polymarket_arbitrage",
"polymarket_edges",
"polymarket_kalshi_spread",
"polymarket_fill_risk",
"polymarket_edge_tracker",
"pipeworx_trending",
"suggest_questions",
"generate_llms_txt"
]
},
"transport_compliance_probe": {
"latency_ms": 38.59,
"protocol_header_present": false,
"status": "error"
},
"utility_coverage_probe": {
"latency_ms": 15.84,
"status": "missing"
}
},
"omitted_count": 0
},
"failures": {
"count": 2,
"items": {
"openid_configuration": {},
"transport_compliance_probe": {}
},
"omitted_count": 0
},
"message": "Raw evidence is summarized in HTML to keep server detail pages fast. Use the JSON report or evidence API for the full payload.",
"remote_url": "https://gateway.pipeworx.io/api-football/mcp",
"server_card": {
"name": null,
"raw_payload_omitted": false,
"version": null
},
"server_identifier": "pipeworx-io/mcp-api-football",
"truncated": true
}
Capabilities
- OAuth:
- DCR/CIMD:
- Prompts:
- Homepage: https://glama.ai/mcp/servers/ptw8zmweh3
- Docs: none
- Support: https://github.com/pipeworx-io/mcp-api-football
- Icon: none
- Remote endpoint: https://gateway.pipeworx.io/api-football/mcp
- Server card: https://gateway.pipeworx.io/.well-known/mcp/server-card.json
Transport compliance drilldown
Issues: missing_session_id, missing_protocol_header, bad_protocol_not_rejected
Request association
Connector replay
Required-argument replay breaks
| Tool | Added required args | Removed required args |
|---|---|---|
| No required-argument replay breaks detected. | ||
Output-schema replay breaks
| Tool | Removed properties | Added properties |
|---|---|---|
| No output-schema replay breaks detected. | ||