{
  "$schema": "https://modelcontextprotocol.io/schemas/server-card/v1.json",

  "serverInfo": {
    "name": "PikoTV Broadcasting Platform MCP Server",
    "version": "1.0.0",
    "description": "MCP server exposing PikoTV's broadcasting platform capabilities — encoder/decoder management, OTT channel operations, IPTV/satellite feed monitoring, QoS/QoE metrics, and FAST channel management — to AI agents and LLM-powered tools.",
    "vendor": "PikoTV A.S.",
    "homepage": "https://pikotv.com",
    "contact": {
      "email": "info@pikotv.com",
      "url": "https://pikotv.com/support"
    },
    "license": "Proprietary",
    "termsOfService": "https://pikotv.com/terms-of-service",
    "privacyPolicy": "https://pikotv.com/privacy-policy"
  },

  "transport": {
    "type": "http",
    "endpoint": "https://mcp.pikotv.com/v1",
    "protocols": ["mcp/1.0"],
    "authentication": {
      "type": "oauth2",
      "discoveryUrl": "https://auth.pikotv.com/.well-known/openid-configuration",
      "protectedResourceUrl": "https://pikotv.com/.well-known/oauth-protected-resource",
      "scopes": [
        "pikotv:encoder:read",
        "pikotv:encoder:write",
        "pikotv:decoder:read",
        "pikotv:decoder:write",
        "pikotv:ott:read",
        "pikotv:ott:write",
        "pikotv:iptv:read",
        "pikotv:monitoring:read",
        "pikotv:fast:read",
        "pikotv:fast:write"
      ]
    }
  },

  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": true,
    "sampling": false,
    "logging": true,
    "experimental": {
      "namedCapabilities": [
        {
          "name": "pikotv.monitoring.rf-nms",
          "description": "RF NMS monitoring capability via SatService sat-nms MNC — exposes satellite ground station alarms, IO-FEP probe metrics, and subsystem health as a named capability distinct from general QoS/QoE monitoring. Backed by the 'monitoring_rf_nms' tool.",
          "tool": "monitoring_rf_nms",
          "requiredScopes": ["pikotv:monitoring:read"],
          "subsystem": "sat-nms MNC",
          "vendor": "SatService GmbH",
          "relatedSkills": ["pikotv.rf-nms", "pikotv.rf-nms.api"]
        }
      ]
    }
  },

  "tools": [
    {
      "name": "list_encoders",
      "description": "List all PikoTV encoder and transcoder instances with their codec, resolution, bitrate, and status.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": { "type": "string", "enum": ["active", "idle", "error", "all"], "default": "all" },
          "codec": { "type": "string", "enum": ["AV1", "VVC", "HEVC", "AVC", "MPEG2", "MPEG4", "EVC", "LCEVC"] }
        }
      },
      "requiredScopes": ["pikotv:encoder:read"]
    },
    {
      "name": "get_encoder",
      "description": "Get full configuration and runtime status for a specific encoder instance.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "encoderId": { "type": "string", "description": "Encoder instance ID" }
        },
        "required": ["encoderId"]
      },
      "requiredScopes": ["pikotv:encoder:read"]
    },
    {
      "name": "list_decoders",
      "description": "List all PikoTV decoder and media gateway instances with satellite input parameters and output port assignments.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": { "type": "string", "enum": ["active", "idle", "error", "all"], "default": "all" },
          "inputType": { "type": "string", "enum": ["DVB-S", "DVB-S2", "DVB-S2X", "IP", "ASI", "SDI", "HDMI"] }
        }
      },
      "requiredScopes": ["pikotv:decoder:read"]
    },
    {
      "name": "get_platform_health",
      "description": "Get the overall health status of the PikoTV broadcasting platform and all subsystems (encoder, decoder, OTT, IPTV, monitoring, FAST).",
      "inputSchema": { "type": "object", "properties": {} },
      "requiredScopes": ["pikotv:encoder:read"]
    },
    {
      "name": "list_ott_channels",
      "description": "List all OTT channels including live, VOD, and FAST channels with packaging and DRM configuration.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": { "type": "string", "enum": ["live", "vod", "fast", "all"], "default": "all" },
          "limit": { "type": "integer", "default": 50, "maximum": 200 }
        }
      },
      "requiredScopes": ["pikotv:ott:read"]
    },
    {
      "name": "list_iptv_feeds",
      "description": "List all satellite and IP input feeds with DVB-S/S2/S2X parameters, signal quality (SNR, BER, level), and transponder details.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "type": { "type": "string", "enum": ["dvb-s", "dvb-s2", "dvb-s2x", "ip", "all"], "default": "all" }
        }
      },
      "requiredScopes": ["pikotv:iptv:read"]
    },
    {
      "name": "get_monitoring_overview",
      "description": "Get a summary of all active QoS/QoE monitoring probes, current metrics (bitrate, packet loss, latency), and active alarm counts.",
      "inputSchema": { "type": "object", "properties": {} },
      "requiredScopes": ["pikotv:monitoring:read"]
    },
    {
      "name": "list_alarms",
      "description": "List active and recent alarms from QoS/QoE monitoring and RF NMS with severity, source subsystem, and timestamps.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "severity": { "type": "string", "enum": ["critical", "major", "minor", "warning", "all"], "default": "all" },
          "since": { "type": "string", "format": "date-time", "description": "ISO 8601 — return alarms since this time" }
        }
      },
      "requiredScopes": ["pikotv:monitoring:read"]
    },
    {
      "name": "list_fast_channels",
      "description": "List all FAST channels with distribution platform assignments, SSAI ad insertion config, monetization model, and viewer metrics.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "platform": { "type": "string", "description": "Filter by distribution platform name" },
          "limit": { "type": "integer", "default": 50, "maximum": 200 }
        }
      },
      "requiredScopes": ["pikotv:fast:read"]
    },
    {
      "name": "search_content",
      "description": "Search PikoTV's public documentation and product pages. Returns relevant markdown content from the content index.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": { "type": "string", "description": "Search query — e.g. 'AV1 encoder specs', 'DVB-S2X satellite input', 'FAST monetization'" },
          "page": { "type": "string", "enum": ["technology", "monitoring", "rf-nms", "fast-content", "iptv-satellite", "platform", "ott-platform", "ecosystem-devices", "why-pikotv", "deployments", "about", "all"], "default": "all" }
        },
        "required": ["query"]
      },
      "requiredScopes": []
    },
    {
      "name": "get_content_page",
      "description": "Fetch the full markdown content for a specific PikoTV product or documentation page.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "string",
            "enum": ["home", "about", "technology", "monitoring", "rf-nms", "fast-content", "iptv-satellite", "platform", "ott-platform", "ecosystem-devices", "why-pikotv", "deployments", "partners", "products", "contact"],
            "description": "Page slug to fetch. Use 'rf-nms' for the dedicated SatService sat-nms MNC satellite ground station monitoring page."
          }
        },
        "required": ["page"]
      },
      "requiredScopes": []
    },
    {
      "name": "get_rf_nms_content",
      "description": "Fetch the full markdown documentation for the PikoTV RF NMS page — SatService GmbH partnership, sat-nms MNC Monitoring & Control system, IO-FEP front-end processor, Turkuvaz Medya reference deployment, and sat-nms product family. No authentication required.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "requiredScopes": []
    },
    {
      "name": "monitoring_rf_nms",
      "description": "Named capability alias for RF NMS monitoring via the sat-nms MNC subsystem. Exposes sat-nms alarm events and per-probe RF metrics (TR 101 290, CC errors, IAT, PSNR, loudness) as a capability distinct from general QoS/QoE monitoring. Maps to the /api/v1/monitoring/alarms and /api/v1/monitoring/probes endpoints filtered to RF NMS sources. Use this tool — rather than list_alarms or get_monitoring_overview — when the agent intent is specifically about satellite ground station health, waveguide switch state, IO-FEP relay outputs, or sat-nms MNC alarm streams.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": ["get_alarms", "get_probes", "get_health"],
            "description": "Which RF NMS data to retrieve. 'get_alarms' → /api/v1/monitoring/alarms filtered to RF NMS sources. 'get_probes' → /api/v1/monitoring/probes for sat-nms MNC-attached probes. 'get_health' → /api/v1/monitoring/health for sat-nms MNC subsystem connectivity status."
          },
          "severity": {
            "type": "string",
            "enum": ["critical", "major", "minor", "warning", "all"],
            "default": "all",
            "description": "Alarm severity filter — only applies when action is 'get_alarms'."
          },
          "since": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 timestamp — return alarms or probe snapshots since this time. Only applies to 'get_alarms' and 'get_probes'."
          },
          "probeId": {
            "type": "string",
            "description": "Optional sat-nms probe identifier to scope results to a single probe. Only applies when action is 'get_probes'."
          }
        },
        "required": ["action"]
      },
      "requiredScopes": ["pikotv:monitoring:read"],
      "annotations": {
        "capability": "pikotv.monitoring.rf-nms",
        "subsystem": "sat-nms MNC",
        "vendor": "SatService GmbH",
        "relatedContent": "https://pikotv.com/content/rf-nms.md",
        "relatedPage": "https://pikotv.com/rf-nms",
        "relatedSkill": "pikotv.rf-nms.api",
        "endpoints": [
          "GET /api/v1/monitoring/alarms",
          "GET /api/v1/monitoring/probes",
          "GET /api/v1/monitoring/health"
        ]
      }
    }
  ],

  "resources": [
    {
      "uri": "pikotv://content/{page}",
      "name": "PikoTV Content Pages",
      "description": "Markdown content for all PikoTV product and documentation pages. Replace {page} with: home, about, technology, monitoring, rf-nms, fast-content, iptv-satellite, platform, ott-platform, ecosystem-devices, why-pikotv, deployments, partners, products, contact.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "pikotv://api/openapi",
      "name": "PikoTV OpenAPI Specification",
      "description": "Full OpenAPI 3.1 specification for the PikoTV Broadcasting Platform API.",
      "mimeType": "application/openapi+json"
    },
    {
      "uri": "pikotv://api/content-index",
      "name": "PikoTV Content Index",
      "description": "JSON index of all available markdown content pages with their URLs and descriptions.",
      "mimeType": "application/json"
    }
  ],

  "prompts": [
    {
      "name": "platform_status_report",
      "description": "Generate a comprehensive status report for the PikoTV broadcasting platform, including all subsystem health, active alarms, and key metrics."
    },
    {
      "name": "encoder_configuration_guide",
      "description": "Guide for configuring a PikoTV encoder for a specific use case (e.g. 4K HEVC live streaming, AV1 OTT transcoding, MPEG-2 satellite contribution)."
    },
    {
      "name": "fast_channel_launch_checklist",
      "description": "Step-by-step checklist for launching a new FAST channel on the PikoTV platform, including content ingestion, SSAI setup, and distribution platform onboarding."
    }
  ],

  "rateLimit": {
    "requestsPerMinute": 60,
    "requestsPerDay": 10000
  },

  "documentation": "https://pikotv.com/docs/api",
  "openapi": "https://pikotv.com/.well-known/openapi.json",
  "apiCatalog": "https://pikotv.com/.well-known/api-catalog"
}
