{
  "name": "Soundcheck",
  "title": "Soundcheck",
  "registry": "io.soundchecklive/soundcheck",
  "description": "Staff live events: gigs, crew, setlists, call lists, ingest. Hosted MCP with OAuth.",
  "version": "0.1.1-ts",
  "homepage": "https://soundchecklive.io",
  "documentation": "https://docs.soundchecklive.io/integrations/mcp-server",
  "repository": "https://github.com/soundchecklive/soundcheck-plugin",
  "icon": "https://raw.githubusercontent.com/soundchecklive/soundcheck-plugin/main/assets/logo.png",
  "privacy": "https://soundchecklive.io/privacy",
  "remote": {
    "url": "https://mcp.soundchecklive.io/mcp",
    "transport": "streamable-http",
    "authentication": {
      "type": "oauth2",
      "authorization_server": "https://clerk.soundchecklive.io",
      "resource": "https://mcp.soundchecklive.io/mcp",
      "protected_resource_metadata": "https://mcp.soundchecklive.io/.well-known/oauth-protected-resource",
      "bearer_methods_supported": [
        "header"
      ]
    }
  },
  "public": {
    "url": "https://mcp.soundchecklive.io/public/mcp",
    "transport": "streamable-http",
    "authentication": {
      "type": "none"
    },
    "description": "Anonymous discovery, analysis, and booking/sponsorship intake. See the generated source catalog; check tools/list and tool results for live availability.",
    "tools": [
      {
        "name": "analyze_event_to_uef",
        "title": "Analyze event text to UEF",
        "readOnly": true
      },
      {
        "name": "get_place",
        "title": "Get public place by id",
        "readOnly": true
      },
      {
        "name": "get_public_org",
        "title": "Get public organization",
        "readOnly": true
      },
      {
        "name": "get_uef_schema",
        "title": "Get UEF schema",
        "readOnly": true
      },
      {
        "name": "list_positions",
        "title": "List crew positions",
        "readOnly": true
      },
      {
        "name": "normalize_inventory",
        "title": "Normalize inventory lines",
        "readOnly": true
      },
      {
        "name": "normalize_positions",
        "title": "Normalize crew positions",
        "readOnly": true
      },
      {
        "name": "request_booking",
        "title": "Request booking",
        "readOnly": false
      },
      {
        "name": "request_sponsorship",
        "title": "Request sponsorship",
        "readOnly": false
      },
      {
        "name": "search_inventory",
        "title": "Search inventory types",
        "readOnly": true
      },
      {
        "name": "search_places",
        "title": "Search public places catalog",
        "readOnly": true
      },
      {
        "name": "validate_uef",
        "title": "Validate UEF",
        "readOnly": true
      }
    ],
    "resources": [
      {
        "name": "uef schema",
        "uri": "soundcheck://uef/schema"
      }
    ],
    "prompts": [
      {
        "name": "how_to_staff_a_live_event",
        "title": "How to staff a live event"
      },
      {
        "name": "plan_event_crew",
        "title": "Plan an event's crew"
      }
    ]
  },
  "tools": [
    {
      "name": "events",
      "description": "Create and manage live-event gigs, venues, agendas, and call lists"
    },
    {
      "name": "crew",
      "description": "Staff roles, positions, availability, and crew assignments"
    },
    {
      "name": "setlists",
      "description": "Build and manage setlists for live shows"
    },
    {
      "name": "ingest",
      "description": "Ingest advance docs and commit proposed gig/crew updates after confirmation"
    },
    {
      "name": "messaging",
      "description": "Send messages and event reminders (confirmation required for consequential writes)"
    },
    {
      "name": "public-discovery",
      "description": "Unauthenticated org lookup, position catalog, booking and sponsorship intake via /public/mcp"
    }
  ],
  "clients": {
    "claude-web": {
      "setup": "Settings → Connectors → Add custom connector → https://mcp.soundchecklive.io/mcp",
      "docs": "https://docs.soundchecklive.io/integrations/mcp-claude"
    },
    "claude-desktop": {
      "setup": "Settings → Connectors → Add custom connector → https://mcp.soundchecklive.io/mcp",
      "docs": "https://docs.soundchecklive.io/integrations/mcp-claude"
    },
    "chatgpt": {
      "setup": "Add custom MCP → https://mcp.soundchecklive.io/mcp (or https://mcp.soundchecklive.io/public/mcp for unauthenticated tools)",
      "docs": "https://docs.soundchecklive.io/integrations/mcp-chatgpt"
    },
    "cursor": {
      "docs": "https://docs.soundchecklive.io/integrations/mcp-cursor",
      "config": {
        "mcpServers": {
          "soundcheck": {
            "url": "https://mcp.soundchecklive.io/mcp"
          }
        }
      }
    }
  },
  "links": {
    "discovery": "https://docs.soundchecklive.io/integrations/mcp-discovery",
    "mcp_server": "https://docs.soundchecklive.io/integrations/mcp-server",
    "mcp_claude": "https://docs.soundchecklive.io/integrations/mcp-claude",
    "mcp_chatgpt": "https://docs.soundchecklive.io/integrations/mcp-chatgpt",
    "mcp_cursor": "https://docs.soundchecklive.io/integrations/mcp-cursor",
    "privacy": "https://soundchecklive.io/privacy",
    "server_card": "https://soundchecklive.io/.well-known/mcp/server-card.json",
    "catalog": "https://soundchecklive.io/mcp-catalog.json",
    "capability_reference": "https://docs.soundchecklive.io/integrations/mcp-catalog",
    "commercial_identity": "https://stripe.com/@soundchecklive"
  }
}
