Give your AI live access to SwiftlyS2 data
SwiftlyS2 exposes its schema, entity, protobuf, game event, convar, Panorama, and API docs data to AI agents - so your coding assistant can look up the exact field, flag, or method it needs instead of guessing.
Connect an MCP client
SwiftlyS2 runs a Model Context Protocol server over Streamable HTTP. Add it to Claude Code, Claude Desktop, Cursor, or any other MCP-compatible client.
https://swiftlys2.net/api/mcp
{
"mcpServers": {
"swiftlys2": {
"url": "https://swiftlys2.net/api/mcp"
}
}
}Available tools
Every domain gets the same three shapes: *_lookup for an exact name, *_list to browse without knowing a name yet, and *_search - the same engine behind that domain's search bar, filters and all. Each tool below is generated straight from its MCP registration, so the parameters shown always match what the server accepts.
site_searchsearches everythingSearch across everything at once - schema, entities, protobuf, game events, convars, docs, and API docs - exactly like the site's top search bar. Use this when you don't know which specific tool to reach for, then follow up with the matching *_lookup tool for full detail.
site_searchSearch across everything at once - schema, entities, protobuf, game events, convars, docs, and API docs - exactly like the site's top search bar. Use this when you don't know which specific tool to reach for, then follow up with the matching *_lookup tool for full detail.
schema_lookupResolve a Source 2 schema class or enum by name and return its fields/members plus a link to the schema viewer. Accepts either the raw name or its C# interface name. Project is auto-resolved if omitted.
schema_listBrowse the schema dump. Without a project, returns every project with its class/enum counts. With a project, returns the class and enum names in it (capped; use schema_search to narrow further).
schema_searchSearch across all schema fields and enum values by substring, exactly like the schema viewer's search bar. Supports the same filters: field name, type, byte offset, enum value, and networked flag.
entity_lookupResolve a Source 2 entity class by name and return its datamap (inputs/outputs/members) plus a link to the entity viewer. Accepts either the raw class name or its C# interface name.
entity_listList entity class names. Pass a prefix to narrow it down (entity classes aren't grouped into modules); without one, only the first page is returned - use entity_search for substring matches anywhere in the name.
entity_searchSearch entity classes and their input/output/member datamap fields by substring, exactly like the entity viewer's search bar.
protobuf_lookupResolve a protobuf message or enum by name and return its fields/values plus a link to the protobuf viewer. Accepts either the raw proto name or its C# name (dots replaced with underscores). File is auto-resolved if omitted and the name is unambiguous.
protobuf_listBrowse the protobuf dump. Without filters, returns every module with its message/enum count. With a module, lists the messages/enums in it. With a file, lists the messages/enums declared in that exact file.
protobuf_searchSearch protobuf messages and enums by substring (or numeric net message id), exactly like the protobuf viewer's search bar. Supports the same filters: kind, file, and module.
gameevent_lookupResolve a game event by name and return its fields plus a link to the game events viewer. Accepts either the raw name (player_death) or its C# interface name (EventPlayerDeath).
gameevent_listBrowse the game events dump. Without a file, returns every gameevents file with its event count. With a file, lists the events declared in it.
gameevent_searchSearch game events by name, field name, or hex hash, exactly like the game events viewer's search bar.
convar_lookupResolve a console variable or console command by exact name (e.g. sv_cheats) and return its flags/description plus a link to the convars viewer. Module is auto-resolved if omitted.
convar_listBrowse the convars dump. Without a module, returns every module with its entry count. With a module, lists the convars/concommands in it.
convar_searchSearch convars and concommands exactly like the convars viewer's filter panel: substring on name, kind, and include/exclude tag filters on module, engine flag (lowercase, e.g. cheat, replicated, notify), and attribute (has_default, has_min, has_max, has_callback, has_completion_callback).
panorama_lookupResolve a Panorama (Source 2 UI) CSS property by name and return its description plus a link to the Panorama viewer.
panorama_listList every Panorama CSS property name known for a game.
panorama_searchSearch Panorama CSS property names, exactly like the Panorama viewer's search bar.
apidocs_lookupResolve a SwiftlyS2 C# API type by exact name (e.g. IPlayerManagerService) and return its declaration/members plus a link to the API docs. Optionally narrow to a single member (method/property/field).
apidocs_listBrowse the SwiftlyS2 C# API docs. Without a category, returns every category with its types. With a category, returns just the types in it.
apidocs_searchSearch API type names, member names, and summaries by substring, exactly like the API docs search bar.
docs_listList every SwiftlyS2 docs page with its title and URL.
docs_searchSearch docs page bodies and headings by substring, exactly like the docs sidebar search bar. Returns matching pages with the heading/snippet and a deep link.
Lookups auto-resolve what they can (schema project, protobuf file, convar module) from just a name. List/search results are capped and report a total + truncated flag rather than ever dumping an entire dump into context.
llms.txt
A plain-text index of the docs and API surface, following the llms.txt convention - for agents that ingest context directly instead of calling tools.
Short index: links to every doc page, the API reference, the data viewers, and this MCP server.
The full index plus the raw markdown of every doc page inlined, for one-shot ingestion.
Structured references in docs
Docs pages can link straight into the viewers with a name - no need to know the project, module, or file it lives in. These render as verified links (or a visible warning if the name doesn't exist), which also makes the docs themselves easier for an LLM to ground against real data.
<SchemaRef name="CBaseEntity" /> <EntityRef name="CCSPlayerPawn" /> <ProtobufRef name="CMsgSayText2" /> <GameEventRef name="player_death" /> <ConvarRef name="sv_cheats" /> <ApiRef name="IPlayerManagerService" member="SendCenterHTML" />