{
  "name": "neuron-ad-exchange",
  "version": "1.0.0",
  "description": "Neuron Systems Autonomous Sports Advertising Exchange & Broker MCP Server. Enables AI agents (Claude, Cursor, OpenAI Agents, LangChain) to query live sports ad inventory, inspect open game tenders, generate binding price quotes, and book guaranteed ad slots with Stripe settlement to @neuronsystems.",
  "protocolVersion": "2024-11-05",
  "publisher": {
    "name": "Neuron Systems Inc.",
    "website": "https://neuronsystems.org",
    "ads_manager": "https://neuronsystems.org/ads-manager",
    "contact": "support@neuronsystems.org",
    "stripe_merchant": "@neuronsystems"
  },
  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": false
  },
  "resources": [
    {
      "uri": "neuron://inventory/open-tenders",
      "name": "Open Sports Ad Tenders",
      "description": "Live real-time feed of vacant and discounted sports advertising slots across upcoming NFL, WNBA, NBA, and F1 games.",
      "mimeType": "application/json",
      "url": "https://neuronsystems.org/api/open-tenders.json"
    },
    {
      "uri": "neuron://inventory/catalog",
      "name": "Ad Formats & CPM Floors Catalog",
      "description": "Official rate card, CPM floors, unit dimensions, and capacity for voice sponsor reads, halftime music shows, pregame anthems, and display banners.",
      "mimeType": "application/json",
      "url": "https://neuronsystems.org/api/ad-inventory.json"
    },
    {
      "uri": "neuron://protocol/agent-ad-protocol",
      "name": "Agent Ad Protocol Specification",
      "description": "Machine-to-machine specification for autonomous agent buying, RTB bidding, and Stripe AgentKit settlement.",
      "mimeType": "application/json",
      "url": "https://neuronsystems.org/.well-known/agent-ad-protocol.json"
    }
  ],
  "tools": [
    {
      "name": "check_neuron_inventory",
      "description": "Query live sports advertising inventory, daily capacity, and CPM floor prices across Neuron Systems (NFL, FIFA, Stars of Soccer, FIBA, F1).",
      "parameters": {
        "type": "object",
        "properties": {
          "sport": {
            "type": "string",
            "enum": [
              "all",
              "gridiron",
              "fiba",
              "starsofsoccer",
              "fnba",
              "pitwall",
              "fifa"
            ],
            "description": "The target sports desk or \"all\" for network-wide coverage."
          },
          "format": {
            "type": "string",
            "enum": [
              "leaderboard_728x90",
              "medium_rectangle_300x250",
              "mobile_banner_320x50",
              "voice_sponsor_read",
              "pregame_anthem_slot",
              "halftime_music_show"
            ],
            "description": "The ad unit format type: display banner, synthetic voice read, or music feature slot."
          }
        },
        "required": [
          "sport"
        ]
      }
    },
    {
      "name": "estimate_ad_cost",
      "description": "Calculates an instant, binding ad quote with dynamic volume discounts for a specified impression volume and sport.",
      "parameters": {
        "type": "object",
        "properties": {
          "sport": {
            "type": "string",
            "enum": [
              "all",
              "gridiron",
              "fiba",
              "starsofsoccer",
              "fnba",
              "pitwall",
              "fifa"
            ],
            "description": "Target sports hub."
          },
          "format": {
            "type": "string",
            "enum": [
              "leaderboard_728x90",
              "medium_rectangle_300x250",
              "mobile_banner_320x50",
              "voice_sponsor_read",
              "pregame_anthem_slot",
              "halftime_music_show"
            ],
            "description": "Ad format type."
          },
          "impressions": {
            "type": "number",
            "description": "Total number of impressions or audio listeners to reach (minimum 5,000)."
          },
          "voice_persona": {
            "type": "string",
            "enum": [
              "The Architect",
              "Marcus",
              "Leo",
              "Sam",
              "Zareena",
              "Big Mike"
            ],
            "description": "Optional AI agent persona for synthetic voice sponsor reads."
          }
        },
        "required": [
          "sport",
          "format",
          "impressions"
        ]
      }
    },
    {
      "name": "create_ad_order",
      "description": "Books an ad campaign using an active quote ID and creative assets.",
      "parameters": {
        "type": "object",
        "properties": {
          "quote_id": {
            "type": "string",
            "description": "The quote ID received from estimate_ad_cost."
          },
          "brand_name": {
            "type": "string",
            "description": "Brand or sponsor company name."
          },
          "click_url": {
            "type": "string",
            "description": "Destination HTTPS click-through URL."
          },
          "image_url": {
            "type": "string",
            "description": "HTTPS URL of the display creative (required for display formats)."
          },
          "voice_script": {
            "type": "string",
            "description": "10–15s spoken sponsor script (max 35 words, required for voice sponsor reads)."
          },
          "selected_persona": {
            "type": "string",
            "enum": [
              "The Architect",
              "Marcus",
              "Leo",
              "Sam",
              "Zareena",
              "Big Mike"
            ],
            "description": "The AI agent selected to voice the read."
          },
          "track_title": {
            "type": "string",
            "description": "Track title for music sponsorship slots."
          },
          "artist_name": {
            "type": "string",
            "description": "Artist name for music sponsorship slots."
          },
          "audio_stream_url": {
            "type": "string",
            "description": "Direct HTTPS audio stream (.mp3, .m4a, .wav) or streaming preview link."
          },
          "cover_art_url": {
            "type": "string",
            "description": "Album or single artwork image URL."
          },
          "streaming_platform_url": {
            "type": "string",
            "description": "Direct link to Spotify, Apple Music, or SoundCloud."
          }
        },
        "required": [
          "quote_id",
          "brand_name",
          "click_url"
        ]
      }
    },
    {
      "name": "get_campaign_telemetry",
      "description": "Retrieves live delivery progress, impressions served, clicks, and completion metrics for a machine campaign.",
      "parameters": {
        "type": "object",
        "properties": {
          "campaign_id": {
            "type": "string",
            "description": "The campaign ID returned upon order creation."
          }
        },
        "required": [
          "campaign_id"
        ]
      }
    },
    {
      "name": "list_open_tenders",
      "description": "Query open, discounted sports advertising tenders and vacant inventory across Neuron Systems (halftime music, pregame anthems, voice drops, and display banners).",
      "parameters": {
        "type": "object",
        "properties": {
          "sport": {
            "type": "string",
            "enum": [
              "all",
              "gridiron",
              "fiba",
              "starsofsoccer",
              "fnba",
              "pitwall",
              "fifa"
            ],
            "description": "Optional sport filter."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of tenders to return (default 8)."
          }
        },
        "required": []
      }
    },
    {
      "name": "submit_programmatic_bid",
      "description": "Submit an automated bid for an open ad tender or existing proposal. The autonomous broker AI will evaluate the bid against pricing floors, auto-negotiate, or immediately accept and return binding Stripe settlement links to @neuronsystems.",
      "parameters": {
        "type": "object",
        "properties": {
          "proposal_id": {
            "type": "string",
            "description": "Target proposal ID or tender ID."
          },
          "bidder_name": {
            "type": "string",
            "description": "Name of the bidding brand, DSP agent, or artist."
          },
          "bid_cpm_usd": {
            "type": "number",
            "description": "The proposed CPM bid in USD."
          },
          "impressions": {
            "type": "number",
            "description": "Optional impression count."
          }
        },
        "required": [
          "bidder_name",
          "bid_cpm_usd"
        ]
      }
    }
  ]
}