Koskamo

Neuron Sports Ad Exchange MCP

An autonomous AI sports ad exchange server that allows agents to find ad inventory availability, obtain binding price quotes, book ad placements via Stripe settlement, and track real-time delivery telemetry for sports content.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Neuron Sports Ad Exchange MCP logo, by Neuron SystemsCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by Neuron Systems
MCP endpoint (Streamable HTTP)
https://neuronsystems.org/mcp
Vendor documentation

What its tools do

7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

7 of 7 have a description · 0 of 7 declare behavior hints · 7 of 7 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Find available ad inventory and published rates
  • Get binding price quotes for ad slots
  • Book ad placements and initiate Stripe checkout
  • Track real-time ad delivery telemetry

Source and maintenance

Community listingRegistry 2.0.0
Maintenance checked

Protocol and capabilities

Server
neuron-ad-exchange 2.0.0
MCP protocol negotiated in check
2025-06-18
Tools
7 advertised
Resources
2 advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Sports advertising exchange. Flow: check_neuron_inventory or list_open_tenders to find availability, estimate_ad_cost to get a binding quote_id, then create_ad_order with that quote_id plus creative. Prices are set by the exchange — a quote_id is the only thing that authorizes a charge, and amounts cannot be supplied by the buyer. Poll get_campaign_telemetry for real delivery.

Tools

7 advertised

check_neuron_inventory
Advertised by the server during the last successful anonymous check.

Query live sports advertising inventory: formats, list CPM, the biddable hard floor, and REAL remaining capacity from the booking ledger. Start here to see what is actually available. Each format reports list_cpm_usd (published rate) and floor_cpm_usd (lowest price a bid can win at).

check_neuron_inventory input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "sport": {
      "enum": [
        "all",
        "gridiron",
        "fiba",
        "starsofsoccer",
        "fnba",
        "pitwall",
        "fifa"
      ],
      "type": "string",
      "description": "Target sports desk, or \"all\" for run-of-network."
    },
    "format": {
      "enum": [
        "leaderboard_728x90",
        "medium_rectangle_300x250",
        "mobile_banner_320x50",
        "voice_sponsor_read",
        "pregame_anthem_slot",
        "halftime_music_show"
      ],
      "type": "string",
      "description": "Optional single ad format to inspect."
    }
  }
}
estimate_ad_cost
Advertised by the server during the last successful anonymous check.

Issue a BINDING quote for a slot. Returns a quote_id valid for 30 minutes and the exact price. You MUST call this before create_ad_order or create_checkout_session — the quote_id is the only thing that authorizes a charge.

estimate_ad_cost input schema
{
  "type": "object",
  "required": [
    "sport",
    "format",
    "impressions"
  ],
  "properties": {
    "sport": {
      "enum": [
        "all",
        "gridiron",
        "fiba",
        "starsofsoccer",
        "fnba",
        "pitwall",
        "fifa"
      ],
      "type": "string",
      "description": "Target sports hub."
    },
    "format": {
      "enum": [
        "leaderboard_728x90",
        "medium_rectangle_300x250",
        "mobile_banner_320x50",
        "voice_sponsor_read",
        "pregame_anthem_slot",
        "halftime_music_show"
      ],
      "type": "string",
      "description": "Ad format type."
    },
    "tender_id": {
      "type": "string",
      "description": "Optional. Pass the tender_id from list_open_tenders to buy a specific flagship event (e.g. the Super Bowl halftime slot). Flagship events carry a price premium; omit this to buy run-of-schedule at the base rate."
    },
    "impressions": {
      "type": "number",
      "description": "Impressions or audio listeners to reach (minimum 5000)."
    },
    "voice_persona": {
      "enum": [
        "The Architect",
        "Marcus",
        "Leo",
        "Sam",
        "Zareena",
        "Big Mike"
      ],
      "type": "string",
      "description": "Optional AI persona for synthetic voice sponsor reads."
    }
  }
}
create_ad_order
Advertised by the server during the last successful anonymous check.

Book a flight against a quote_id from estimate_ad_cost, with creative assets. Price and impressions come from the stored quote — anything you send that contradicts it is ignored. Returns an order_id and a Stripe checkout URL for the exact quoted amount. Pass idempotency_key to make retries safe.

create_ad_order input schema
{
  "type": "object",
  "required": [
    "quote_id",
    "ad_category",
    "brand_name",
    "click_url"
  ],
  "properties": {
    "headline": {
      "type": "string",
      "description": "Short sponsor headline."
    },
    "quote_id": {
      "type": "string",
      "description": "REQUIRED. The quote ID from estimate_ad_cost."
    },
    "click_url": {
      "type": "string",
      "description": "Destination HTTPS click-through URL."
    },
    "image_url": {
      "type": "string",
      "description": "HTTPS display creative (required for display formats)."
    },
    "brand_name": {
      "type": "string",
      "description": "Brand or sponsor company name."
    },
    "ad_category": {
      "enum": [
        "general",
        "alcohol",
        "betting"
      ],
      "type": "string",
      "description": "REQUIRED. What the sponsor sells. alcohol and betting ads are shown only to signed in fans who have told us they are 21 or over; general ads are shown to everyone."
    },
    "artist_name": {
      "type": "string",
      "description": "Artist name (required for music slots)."
    },
    "track_title": {
      "type": "string",
      "description": "Track title (required for music slots)."
    },
    "voice_script": {
      "type": "string",
      "description": "10-15s spoken script, max 35 words (required for voice_sponsor_read)."
    },
    "cover_art_url": {
      "type": "string",
      "description": "Cover artwork image URL."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Optional. Reuse on retry to avoid double-booking."
    },
    "advertiser_email": {
      "type": "string",
      "description": "Optional buyer email for the Stripe receipt."
    },
    "audio_stream_url": {
      "type": "string",
      "description": "HTTPS audio stream (required for music slots)."
    },
    "rights_confirmed": {
      "type": "boolean",
      "description": "Must be true for music slots: you confirm licensing or ownership."
    },
    "selected_persona": {
      "enum": [
        "The Architect",
        "Marcus",
        "Leo",
        "Sam",
        "Zareena",
        "Big Mike"
      ],
      "type": "string",
      "description": "AI persona voicing the read."
    },
    "streaming_platform_url": {
      "type": "string",
      "description": "Spotify / Apple Music / SoundCloud link."
    }
  }
}
create_checkout_session
Advertised by the server during the last successful anonymous check.

Generate a live Stripe Checkout URL for an existing quote_id or order_id, settling to @neuronsystems. The amount is read from the stored quote; it cannot be supplied by the caller. Call estimate_ad_cost first.

create_checkout_session input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "order_id": {
      "type": "string",
      "description": "Existing order to settle. Provide this or quote_id."
    },
    "quote_id": {
      "type": "string",
      "description": "Quote to settle. Provide this or order_id."
    },
    "customer_email": {
      "type": "string",
      "description": "Optional buyer email for the receipt."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Optional. Reuse on retry to avoid duplicate sessions."
    }
  }
}
get_campaign_telemetry
Advertised by the server during the last successful anonymous check.

Retrieve real delivery for an order: impressions served, clicks, audio completes, pacing, and settlement status.

get_campaign_telemetry input schema
{
  "type": "object",
  "required": [
    "order_id"
  ],
  "properties": {
    "order_id": {
      "type": "string",
      "description": "The order ID returned by create_ad_order."
    }
  }
}
list_open_tenders
Advertised by the server during the last successful anonymous check.

List slots with real unsold capacity right now, ordered by how close they are to selling out. Each carries list_cpm_usd (published rate), floor_cpm_usd (biddable hard floor), an indicative price at volume, and the exact estimate_ad_cost call to quote it.

list_open_tenders input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "limit": {
      "type": "number",
      "description": "Maximum tenders to return (default 8, max 50)."
    },
    "sport": {
      "enum": [
        "all",
        "gridiron",
        "fiba",
        "starsofsoccer",
        "fnba",
        "pitwall",
        "fifa"
      ],
      "type": "string",
      "description": "Optional sport filter."
    },
    "format": {
      "enum": [
        "leaderboard_728x90",
        "medium_rectangle_300x250",
        "mobile_banner_320x50",
        "voice_sponsor_read",
        "pregame_anthem_slot",
        "halftime_music_show"
      ],
      "type": "string",
      "description": "Optional format filter."
    }
  }
}
submit_programmatic_bid
Advertised by the server during the last successful anonymous check.

Bid a CPM against a slot. The broker evaluates it against floor_cpm_usd (the hard floor) and the authorized discount band, then auto-accepts (returning a spendable quote_id), counters with a price, or rejects. Bid at or above min_acceptable_cpm_usd from check_neuron_inventory or a prior response to be accepted; no bid is ever accepted below floor_cpm_usd.

submit_programmatic_bid input schema
{
  "type": "object",
  "required": [
    "format",
    "sport",
    "bid_cpm_usd",
    "impressions",
    "bidder_name"
  ],
  "properties": {
    "sport": {
      "enum": [
        "all",
        "gridiron",
        "fiba",
        "starsofsoccer",
        "fnba",
        "pitwall",
        "fifa"
      ],
      "type": "string",
      "description": "Target sports hub."
    },
    "format": {
      "enum": [
        "leaderboard_728x90",
        "medium_rectangle_300x250",
        "mobile_banner_320x50",
        "voice_sponsor_read",
        "pregame_anthem_slot",
        "halftime_music_show"
      ],
      "type": "string",
      "description": "Ad format being bid on."
    },
    "tender_id": {
      "type": "string",
      "description": "Optional. Bid on a specific flagship event from list_open_tenders. Event floors are higher than the base rate, so omitting this judges the bid against base pricing."
    },
    "bid_cpm_usd": {
      "type": "number",
      "description": "Proposed CPM in USD."
    },
    "bidder_name": {
      "type": "string",
      "description": "Bidding brand, DSP, or artist."
    },
    "impressions": {
      "type": "number",
      "description": "Impressions sought (minimum 5000)."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Optional. Reuse on retry."
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

2 advertised

Rate Card & Capacity Catalog

Advertised by the server during the last successful anonymous check.

Ad formats, dimensions, CPM floors, daily capacity, and the volume discount ladder.

Rate Card & Capacity Catalog URI
neuron://inventory/catalog

MIME type: application/json

Open Sports Ad Tenders

Advertised by the server during the last successful anonymous check.

Slots with real unsold capacity right now, from the live booking ledger.

Open Sports Ad Tenders URI
neuron://inventory/open-tenders

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
759 ms
95th percentile latency
759 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 759 ms · metadata changed · 7 tool(s), 2 resource(s); warnings: Advertises resources/templates/list but does not implement it

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http neuron-sports-ad-exchange-mcp https://neuronsystems.org/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add neuron-sports-ad-exchange-mcp --url https://neuronsystems.org/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable neuron-sports-ad-exchange-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "neuron-sports-ad-exchange-mcp": {
      "url": "https://neuronsystems.org/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "neuron-sports-ad-exchange-mcp": {
      "type": "streamableHttp",
      "url": "https://neuronsystems.org/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start neuron-sports-ad-exchange-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "neuron-sports-ad-exchange-mcp": {
      "type": "http",
      "url": "https://neuronsystems.org/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http neuron-sports-ad-exchange-mcp https://neuronsystems.org/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://neuronsystems.org/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "neuron-sports-ad-exchange-mcp": {
      "serverUrl": "https://neuronsystems.org/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Neuron Sports Ad Exchange MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.