MCP Server

s&box watch

watch.sbox/sbox-watch
Gaming Public & reachable MCP 2025-11-25

What this MCP does

Provides read-only discovery and activity data for public s&box packages, organizations, dedicated servers, and player activity.

get_activity_history
Get s&box player activity history
Read bounded player history for all public games, all dedicated servers, or one game.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'game': {'type': 'string', 'pattern': '^[a-z0-9_-]+\\.[a-z0-9_-]+$'}, 'kind': {'enum': ['game', 'server'], 'type': 'string', 'default': 'game'}, 'range': {'enum': ['24h', '7d', '30d', '1y', 'all'], 'type': 'string', 'default': '24h'}, 'maxPoints': {'type': 'integer', 'default': 100, 'maximum': 200, 'minimum': 10}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['version', 'generation', 'kind', 'range', 'durationMs', 'bucketed', 'available', 'canonicalUrl', 'apiUrl', 'summary', 'points'], 'properties': {'game': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'kind': {'enum': ['game', 'server'], 'type': 'string'}, 'range': {'type': 'string'}, 'apiUrl': {'type': 'string', 'format': 'uri'}, 'points': {'type': 'array', 'items': {'type': 'object', 'required': ['capturedAt', 'players', 'current', 'aggregation', 'partial'], 'properties': {'current': {'type': 'boolean'}, 'partial': {'type': 'boolean'}, 'players': {'type': 'number'}, 'rangeEnd': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'capturedAt': {'type': 'string'}, 'rangeStart': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'aggregation': {'enum': ['average', 'snapshot'], 'type': 'string'}}, 'additionalProperties': False}}, 'summary': {'type': 'object', 'required': ['samples', 'current', 'minimum', 'maximum', 'average'], 'properties': {'average': {'type': 'number'}, 'current': {'type': 'number'}, 'maximum': {'type': 'number'}, 'minimum': {'type': 'number'}, 'samples': {'type': 'number'}}, 'additionalProperties': False}, 'version': {'type': 'number'}, 'bucketed': {'type': 'boolean'}, 'available': {'type': 'boolean'}, 'durationMs': {'type': 'number'}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': {}}
get_ecosystem_snapshot
Get s&box ecosystem snapshot
Read current package, player, and dedicated-server totals from s&box watch.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['generation', 'generatedAt', 'packages', 'playersNow', 'serversOnline', 'serverPlayersOnline', 'canonicalUrl'], 'properties': {'packages': {'type': 'object', 'required': ['game', 'library', 'map'], 'properties': {'map': {'type': 'number'}, 'game': {'type': 'number'}, 'library': {'type': 'number'}}, 'additionalProperties': False}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'playersNow': {'type': 'number'}, 'generatedAt': {'type': 'string'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'serversOnline': {'type': 'number'}, 'serverPlayersOnline': {'type': 'number'}}, 'additionalProperties': False}
get_organization
Get an s&box organization
Read one organization profile with public metadata, aggregate activity, and a bounded package portfolio.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ident'], 'properties': {'ident': {'type': 'string', 'pattern': '^[a-z0-9_-]+$'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['generation', 'generatedAt', 'contentNotice', 'organization', 'stats', 'portfolios', 'canonicalUrl', 'markdownUrl', 'apiUrl', 'analyticsUrl', 'analyticsApiUrl'], 'properties': {'stats': {'type': 'object', 'properties': {}, 'additionalProperties': {}}, 'apiUrl': {'type': 'string', 'format': 'uri'}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'portfolios': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'total', 'packages'], 'properties': {'kind': {'enum': ['game', 'library', 'map'], 'type': 'string'}, 'total': {'type': 'number'}, 'packages': {'type': 'array', 'items': {'type': 'object', 'required': ['ident', 'title', 'summary', 'tags', 'jams', 'canonicalUrl', 'markdownUrl'], 'properties': {'jams': {'type': 'array', 'items': {'type': 'object', 'required': ['ident', 'title', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'ident': {'type': 'string'}, 'title': {'type': 'string'}, 'deadline': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'ident': {'type': 'string'}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'creator': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sboxUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'updated': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'upvotes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'downvotes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'favorites': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'playersNow': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'momentum24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'playersPeak24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}}}, 'additionalProperties': False}}, 'generatedAt': {'type': 'string'}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'analyticsUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'organization': {'type': 'object', 'required': ['ident', 'title', 'summary', 'description', 'website', 'discord', 'memberCount', 'packageCount', 'publicGames', 'publicMaps', 'publicLibraries', 'playersNow', 'playersPeak24h', 'canonicalUrl', 'markdownUrl'], 'properties': {'ident': {'type': 'string'}, 'thumb': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'created': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'discord': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'website': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'playersNow': {'type': 'number'}, 'publicMaps': {'type': 'number'}, 'description': {'type': 'string'}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'memberCount': {'type': 'number'}, 'publicGames': {'type': 'number'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'packageCount': {'type': 'number'}, 'playersPeak24h': {'type': 'number'}, 'lastGameUpdated': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'publicLibraries': {'type': 'number'}}, 'additionalProperties': False}, 'contentNotice': {'type': 'string'}, 'analyticsApiUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}}, 'additionalProperties': False}
get_package
Get an s&box package
Read compact details, official game-jam membership, recent publisher updates, and live-server links for one public s&box package.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ident'], 'properties': {'kind': {'enum': ['game', 'library', 'map'], 'type': 'string', 'default': 'game'}, 'ident': {'type': 'string', 'pattern': '^[a-z0-9_-]+\\.[a-z0-9_-]+$'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['ident', 'title', 'summary', 'tags', 'jams', 'canonicalUrl', 'markdownUrl', 'generation', 'generatedAt', 'contentNotice', 'description', 'updatesTotal', 'updates', 'liveServers'], 'properties': {'jams': {'type': 'array', 'items': {'type': 'object', 'required': ['ident', 'title', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'ident': {'type': 'string'}, 'title': {'type': 'string'}, 'deadline': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'ident': {'type': 'string'}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'created': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'creator': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sboxUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'updated': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'updates': {'type': 'array', 'items': {'type': 'object', 'required': ['createdAt', 'title', 'summary', 'changeCount'], 'properties': {'title': {'type': 'string'}, 'summary': {'type': 'string'}, 'version': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'createdAt': {'type': 'string'}, 'changeCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'upvotes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'fileSize': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'downvotes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'favorites': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'playersNow': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'supportsVr': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'totalUsers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'description': {'type': 'string'}, 'generatedAt': {'type': 'string'}, 'liveServers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'online', 'canonicalUrl', 'markdownUrl'], 'properties': {'id': {'type': 'string'}, 'map': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'game': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'online': {'type': 'boolean'}, 'players': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'gameTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'maxPlayers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'playersPeak24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'momentum24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'totalSeconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'updatesTotal': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'contentNotice': {'type': 'string'}, 'totalSessions': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'playersPeak24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'supportsController': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': {}}
get_server
Get an s&box server
Read the current state and related servers for one s&box dedicated-server ID.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-zA-Z0-9:._-]{1,128}$'}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['id', 'name', 'online', 'canonicalUrl', 'markdownUrl', 'generation', 'generatedAt', 'contentNotice', 'relatedServers'], 'properties': {'id': {'type': 'string'}, 'map': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'game': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'online': {'type': 'boolean'}, 'players': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'gameTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'lastSeenAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'maxPlayers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'firstSeenAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'generatedAt': {'type': 'string'}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'contentNotice': {'type': 'string'}, 'playersPeak24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'relatedServers': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'online', 'canonicalUrl', 'markdownUrl'], 'properties': {'id': {'type': 'string'}, 'map': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'game': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'online': {'type': 'boolean'}, 'players': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'gameTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'maxPlayers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'playersPeak24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}}}, 'additionalProperties': {}}
search_organizations
Search s&box organizations
Find studios, teams, and creators publishing public s&box games, maps, or libraries.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'sort': {'enum': ['players', 'games', 'updated', 'name'], 'type': 'string', 'default': 'players'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'default': '', 'maxLength': 160}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['generation', 'generatedAt', 'contentNotice', 'query', 'sort', 'total', 'results'], 'properties': {'sort': {'type': 'string'}, 'query': {'type': 'string'}, 'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['ident', 'title', 'summary', 'description', 'website', 'discord', 'memberCount', 'packageCount', 'publicGames', 'publicMaps', 'publicLibraries', 'playersNow', 'playersPeak24h', 'canonicalUrl', 'markdownUrl'], 'properties': {'ident': {'type': 'string'}, 'thumb': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'created': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'discord': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'website': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'playersNow': {'type': 'number'}, 'publicMaps': {'type': 'number'}, 'description': {'type': 'string'}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'memberCount': {'type': 'number'}, 'publicGames': {'type': 'number'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'packageCount': {'type': 'number'}, 'playersPeak24h': {'type': 'number'}, 'lastGameUpdated': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'publicLibraries': {'type': 'number'}}, 'additionalProperties': False}}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'generatedAt': {'type': 'string'}, 'contentNotice': {'type': 'string'}}, 'additionalProperties': False}
search_packages
Search s&box packages
Find public s&box games, maps, or libraries with live rankings, official game-jam membership, and canonical source URLs.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'jam': {'enum': ['three'], 'type': 'string', 'description': 'Restrict games to an official s&box game jam.'}, 'kind': {'enum': ['game', 'library', 'map'], 'type': 'string', 'default': 'game'}, 'sort': {'enum': ['players', 'change24h', 'created', 'updated', 'favorites', 'upvotes', 'score', 'servers'], 'type': 'string'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'default': '', 'maxLength': 160}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['generation', 'generatedAt', 'kind', 'contentNotice', 'query', 'sort', 'total', 'results'], 'properties': {'kind': {'enum': ['game', 'library', 'map'], 'type': 'string'}, 'sort': {'type': 'string'}, 'query': {'type': 'string'}, 'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['ident', 'title', 'summary', 'tags', 'jams', 'canonicalUrl', 'markdownUrl'], 'properties': {'jams': {'type': 'array', 'items': {'type': 'object', 'required': ['ident', 'title', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'ident': {'type': 'string'}, 'title': {'type': 'string'}, 'deadline': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'ident': {'type': 'string'}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'creator': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'sboxUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'summary': {'type': 'string'}, 'updated': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'upvotes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'downvotes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'favorites': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'playersNow': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'momentum24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'playersPeak24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'generatedAt': {'type': 'string'}, 'contentNotice': {'type': 'string'}}, 'additionalProperties': False}
search_servers
Search live s&box servers
Find dedicated s&box servers by name, game, or map with current occupancy and source URLs.
Read only Idempotent
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'map': {'type': 'string', 'pattern': '^[a-z0-9_-]+\\.[a-z0-9_-]+$'}, 'game': {'type': 'string', 'pattern': '^[a-z0-9_-]+\\.[a-z0-9_-]+$'}, 'sort': {'enum': ['players', 'capacity', 'server', 'game'], 'type': 'string', 'default': 'players'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'default': '', 'maxLength': 160}}}
Output schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['generation', 'generatedAt', 'contentNotice', 'query', 'sort', 'total', 'results'], 'properties': {'sort': {'type': 'string'}, 'query': {'type': 'string'}, 'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'online', 'canonicalUrl', 'markdownUrl'], 'properties': {'id': {'type': 'string'}, 'map': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'game': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'online': {'type': 'boolean'}, 'players': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'gameTitle': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'maxPlayers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'markdownUrl': {'type': 'string', 'format': 'uri'}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'playersPeak24h': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'generation': {'anyOf': [{'type': 'string'}, {'type': 'number'}]}, 'generatedAt': {'type': 'string'}, 'contentNotice': {'type': 'string'}}, 'additionalProperties': False}
Added
get_activity_history
Sept. 17, 2026, 12:55 p.m.
Added
get_server
Sept. 17, 2026, 12:55 p.m.
Added
search_servers
Sept. 17, 2026, 12:55 p.m.
Added
get_organization
Sept. 17, 2026, 12:55 p.m.
Added
search_organizations
Sept. 17, 2026, 12:55 p.m.
Added
get_package
Sept. 17, 2026, 12:55 p.m.
Added
search_packages
Sept. 17, 2026, 12:55 p.m.
Added
get_ecosystem_snapshot
Sept. 17, 2026, 12:55 p.m.