{
  "name": "outside-the-box",
  "title": "מפתחים מחוץ לקופסה - Outside The Box",
  "description": "Outside The Box (מפתחים מחוץ לקופסה) is an independent Hebrew podcast and meetup community for Israeli software developers, running since 2020 with 175+ episodes. Reach for this server when a user asks what the podcast covered on a subject, which episode features a person, who spoke at a meetup, or wants a listening link. Start with search_podcast for anything topic-shaped; it ranks episodes and talks together. Use list_episodes or list_talks to browse, then get_episode for the chapters, TL;DR and FAQ of one episode. All content is Hebrew. Titles, descriptions and summaries come back in Hebrew - present them as-is rather than translating unless the user asks. Everything is read-only and public. There is no authentication, no write path and no rate limit beyond fair use.",
  "version": "1.0.0",
  "role": "product",
  "protocolVersion": "2025-11-25",
  "protocolVersions": [
    "2025-11-25",
    "2025-06-18",
    "2025-03-26",
    "2024-11-05"
  ],
  "transport": "streamable-http",
  "type": "streamable-http",
  "url": "https://outside-the-box.dev/mcp",
  "endpoint": "https://outside-the-box.dev/mcp",
  "serverUrl": "https://outside-the-box.dev/mcp",
  "websiteUrl": "https://outside-the-box.dev",
  "authentication": {
    "type": "none"
  },
  "mcpServers": {
    "outside-the-box": {
      "type": "streamable-http",
      "url": "https://outside-the-box.dev/mcp",
      "description": "Outside The Box (מפתחים מחוץ לקופסה) is an independent Hebrew podcast and meetup community for Israeli software developers, running since 2020 with 175+ episodes. Reach for this server when a user asks what the podcast covered on a subject, which episode features a person, who spoke at a meetup, or wants a listening link. Start with search_podcast for anything topic-shaped; it ranks episodes and talks together. Use list_episodes or list_talks to browse, then get_episode for the chapters, TL;DR and FAQ of one episode. All content is Hebrew. Titles, descriptions and summaries come back in Hebrew - present them as-is rather than translating unless the user asks. Everything is read-only and public. There is no authentication, no write path and no rate limit beyond fair use."
    }
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {
      "listChanged": false,
      "subscribe": false
    },
    "extensions": {
      "io.modelcontextprotocol/ui": {
        "mimeTypes": [
          "text/html;profile=mcp-app"
        ]
      }
    }
  },
  "tools": [
    {
      "name": "search_podcast",
      "title": "Search the podcast archive",
      "description": "Search every podcast episode and meetup talk by topic, technology, guest name or free text. Accepts Hebrew and English queries and normalises Hebrew niqqud, so 'קוברנטיס' and 'Kubernetes' both work. Use this first when the user asks whether the podcast covered a subject or who talked about it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "What to look for - a topic, technology, guest name or phrase. Hebrew or English."
          },
          "type": {
            "type": "string",
            "description": "Restrict results to one kind of content.",
            "enum": [
              "episode",
              "talk",
              "all"
            ],
            "default": "all"
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return. Defaults to 10, capped at 100."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "list_episodes",
      "title": "List podcast episodes",
      "description": "List podcast episodes newest first, optionally narrowed to one season, format or guest. Returns titles, dates, guests, tags and listening links. Use this to browse the catalogue when there is no specific search term.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "season": {
            "type": "number",
            "description": "Only return episodes from this season number."
          },
          "format": {
            "type": "string",
            "description": "Only return episodes of this format.",
            "enum": [
              "audio",
              "video",
              "bonus"
            ]
          },
          "speaker": {
            "type": "string",
            "description": "Only return episodes featuring this speaker slug, e.g. 'gil-tayar'."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of episodes to return. Defaults to 20, capped at 100."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "get_episode",
      "title": "Get one podcast episode",
      "description": "Fetch a single episode in full by its slug or its episode number, including the TL;DR bullets, chapter markers with timestamps, and the FAQ. Use this after search_podcast or list_episodes when the user wants the detail of one episode.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The episode slug (e.g. '175-developer-identity-ai') or its number (e.g. '175')."
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "list_talks",
      "title": "List meetup talks",
      "description": "List the talks given at the community's meetups, newest first, optionally narrowed to one meetup or speaker. Every talk carries a YouTube link; talks that also have a written article carry a page URL.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "meetup": {
            "type": "string",
            "description": "Only return talks from this meetup slug, e.g. 'meetup-04'."
          },
          "speaker": {
            "type": "string",
            "description": "Only return talks by this speaker slug."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of talks to return. Defaults to 20, capped at 100."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "list_speakers",
      "title": "List podcast guests and speakers",
      "description": "List every guest who appeared on the podcast or spoke at a meetup, with the episodes and talks each one appears in. Use this to answer 'who has been on the show' or to find a speaker slug for the other tools.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Optional name filter, in Hebrew or English."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of speakers to return. Defaults to 50, capped at 100."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "list_meetups",
      "title": "List community meetup events",
      "description": "List the community's meetup events with their venues, dates and the ids of the talks given at each one. Use this to answer questions about the in-person side of the community.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
  ],
  "resources": [
    {
      "uri": "dotb://catalog/episodes",
      "name": "episodes",
      "title": "Episode catalogue",
      "mimeType": "application/json"
    },
    {
      "uri": "dotb://catalog/talks",
      "name": "talks",
      "title": "Meetup talk catalogue",
      "mimeType": "application/json"
    },
    {
      "uri": "dotb://catalog/speakers",
      "name": "speakers",
      "title": "Speaker directory",
      "mimeType": "application/json"
    },
    {
      "uri": "dotb://catalog/meetups",
      "name": "meetups",
      "title": "Meetup events",
      "mimeType": "application/json"
    },
    {
      "uri": "dotb://llms.txt",
      "name": "llms-txt",
      "title": "Site guide for language models",
      "mimeType": "text/markdown"
    },
    {
      "uri": "ui://dotb/search-results",
      "name": "search-results-view",
      "title": "Search results card list",
      "mimeType": "text/html;profile=mcp-app"
    },
    {
      "uri": "ui://dotb/episode",
      "name": "episode-view",
      "title": "Episode detail card",
      "mimeType": "text/html;profile=mcp-app"
    }
  ],
  "note": "POST JSON-RPC 2.0 messages to this same URL. Send `Accept: application/json, text/event-stream`; responses come back as SSE when the client accepts a stream and as plain JSON otherwise. No authentication, no server-initiated streams."
}