{
  "specVersion": "1.0",
  "host": {
    "displayName": "allcams.fm",
    "identifier": "did:web:allcams.fm",
    "documentationUrl": "https://allcams.fm/mcp/",
    "logoUrl": "https://allcams.fm/images/logo-2.svg"
  },
  "entries": [
    {
      "identifier": "urn:air:allcams.fm:mcp:cams",
      "displayName": "allcams.fm MCP server",
      "type": "application/mcp-server-card+json",
      "description": "Live webcam models from six platforms (Stripchat, Chaturbate, Cam4, LiveJasmin, BongaCams, CamSoda) reconciled into one vocabulary of categories, in 41 languages. Who is online refreshes every 10 minutes. Start with site_overview, then list_categories(language) for the exact category slugs; get_category and get_model return the same markdown the site serves at its .md URLs. get_model on a retired nickname returns its state record (retired / gone / removed, the dates, where the page redirects) — only a nickname that was never listed is a miss. Every URL in an answer is a page on this site; give users the URLs exactly as returned.",
      "tags": [
        "live-cams",
        "webcam",
        "adult",
        "18+",
        "aggregator",
        "multilingual"
      ],
      "capabilities": [
        "site_overview",
        "list_categories",
        "get_category",
        "get_model",
        "list_online"
      ],
      "representativeQueries": [
        "which cam models are online right now",
        "find a live asian cam room with the most viewers",
        "is <nickname> streaming now and on which platform",
        "list the live cam categories in German"
      ],
      "data": {
        "name": "allcams",
        "description": "Live webcam models from six platforms (Stripchat, Chaturbate, Cam4, LiveJasmin, BongaCams, CamSoda) reconciled into one vocabulary of categories, in 41 languages. Who is online refreshes every 10 minutes. Start with site_overview, then list_categories(language) for the exact category slugs; get_category and get_model return the same markdown the site serves at its .md URLs. get_model on a retired nickname returns its state record (retired / gone / removed, the dates, where the page redirects) — only a nickname that was never listed is a miss. Every URL in an answer is a page on this site; give users the URLs exactly as returned.",
        "version": "1.0",
        "transport": "streamable-http",
        "url": "https://allcams.fm/api/mcp",
        "authentication": "none",
        "documentationUrl": "https://allcams.fm/mcp/",
        "tools": [
          {
            "name": "site_overview",
            "description": "What this site is, key facts, menu sections and languages (the llms.txt).",
            "inputSchema": {
              "properties": {},
              "title": "site_overviewArguments",
              "type": "object"
            }
          },
          {
            "name": "list_categories",
            "description": "Every category page of one language with its slug and one-line description. Use the slug in get_category and list_online.",
            "inputSchema": {
              "properties": {
                "language": {
                  "default": "en",
                  "title": "Language",
                  "type": "string"
                }
              },
              "title": "list_categoriesArguments",
              "type": "object"
            }
          },
          {
            "name": "get_category",
            "description": "Markdown of one category page: text, which platforms run it, how many models are online, related categories.",
            "inputSchema": {
              "properties": {
                "category": {
                  "title": "Category",
                  "type": "string"
                },
                "language": {
                  "default": "en",
                  "title": "Language",
                  "type": "string"
                }
              },
              "required": [
                "category"
              ],
              "title": "get_categoryArguments",
              "type": "object"
            }
          },
          {
            "name": "get_model",
            "description": "Markdown of one model page: status (online/offline, viewers), platform, languages, statistics, tags, the sign-up link; for a retired model, a short state record (retired/gone/removed, dates, where the page redirects).",
            "inputSchema": {
              "properties": {
                "nickname": {
                  "title": "Nickname",
                  "type": "string"
                },
                "language": {
                  "default": "en",
                  "title": "Language",
                  "type": "string"
                }
              },
              "required": [
                "nickname"
              ],
              "title": "get_modelArguments",
              "type": "object"
            }
          },
          {
            "name": "list_online",
            "description": "Models live right now, most viewers first. category narrows to one category slug, nickname finds one model, limit (1-100, default 20) and page page through.",
            "inputSchema": {
              "properties": {
                "language": {
                  "default": "en",
                  "title": "Language",
                  "type": "string"
                },
                "category": {
                  "default": "",
                  "title": "Category",
                  "type": "string"
                },
                "nickname": {
                  "default": "",
                  "title": "Nickname",
                  "type": "string"
                },
                "limit": {
                  "default": 20,
                  "title": "Limit",
                  "type": "integer"
                },
                "page": {
                  "default": 1,
                  "title": "Page",
                  "type": "integer"
                }
              },
              "title": "list_onlineArguments",
              "type": "object"
            }
          }
        ],
        "resources": [
          {
            "uri": "site://llms.txt",
            "name": "llms.txt",
            "mimeType": "text/plain"
          }
        ]
      },
      "metadata": {
        "llmsTxt": "https://allcams.fm/llms.txt",
        "documentation": "https://allcams.fm/mcp/",
        "documentationMarkdown": "https://allcams.fm/mcp.md",
        "registry": "fm.allcams/cams",
        "registryUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/fm.allcams%2Fcams/versions/1.0.0",
        "audience": "adults (18+)",
        "refresh": "who is online refreshes every 10 minutes"
      }
    }
  ]
}