sims4-tc-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIMS4_MCP_HOST | No | HTTP bind host. Optional. | 127.0.0.1 |
| SIMS4_MCP_PORT | No | HTTP bind port. Optional. | 7348 |
| SIMS4_MODS_DIR | No | Path to the Mods folder. Optional; used as the default source_dir for catalog overrides. | |
| SIMS4_USER_DIR | No | Path to the Sims 4 user folder (…/Documents/Electronic Arts/The Sims 4). Optional; a default guess is used if unset. | |
| SIMS4_TDESC_DIR | No | Path to extracted .tdesc schema files. Optional. | |
| SIMS4_MCP_CONFIG | No | Config file override path. Optional. | ~/.config/sims4-tc-mcp/config.json |
| SIMS4_MCP_CACHE_DIR | No | SQLite cache root directory. Optional. | ~/.cache/sims4-tc-mcp |
| SIMS4_MCP_TRANSPORT | No | Transport mode: stdio, streamable-http, or sse. Optional. | stdio |
| SIMS4_MCP_AUTH_TOKEN | No | Bearer token for HTTP transport. Required for any non-loopback bind; loopback binds may run token-less. | |
| SIMS4_EXTRACTED_TUNING_DIR | No | Path to extracted Maxis XML tuning files for the FTS index and dependency graph. Optional. | |
| SIMS4_DECOMPILED_SCRIPTS_DIR | No | Path to decompiled game Python scripts (base, core, simulation, protocolbuffers). Optional. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Tools for The Sims 4 script mods and total conversions: FNV hashing, DBPF .package I/O, TDESC schemas, SimData compilation, vanilla tuning search + dependency graph, game Python API search, Python 3.7 validation/packaging, catalog flag patching, live bridge and crash diagnostics.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hash_fnvA | Hash a string with FNV-1 (Sims 4 resource/tuning convention). |
| inspect_packageC | List every TGI entry in a .package with type, sizes and metadata. |
| extract_package_resourceC | Extract one resource by TGI and decode it (XML/STBL/SimData/catalog). |
| build_packageB | Compile a project dir (XML + .stbl.json + .bin/.tgi) into a package. Tuning XML gets companion SimData automatically when its class needs client-binary data. |
| create_stbl_dictionaryC | Hash string references and write STBL resources (all 18 locales). |
| query_tdesc_schemaC | Return the tunable schema + starter XML for a tuning class. |
| search_vanilla_tuningC | Full-text search over the indexed Maxis tuning XML database. |
| read_vanilla_tuningC | Return the complete XML of an indexed vanilla tuning. |
| get_tuning_dependency_graphC | Cross-tuning reference graph (what depends on / is used by a tuning). |
| compile_tuning_with_simdataC | Validate tuning XML and compile matching 0x545AC67A SimData. |
| search_game_python_apiC | Search decompiled Maxis Python classes, methods and docstrings. |
| generate_runtime_tuning_hookC | Generate Python 3.7 injection/stripping code for runtime hooks. |
| validate_and_build_ts4scriptC | Run the Python 3.7 AST gatekeeper then bundle a .ts4script zip. |
| batch_create_catalog_overridesC | Bulk-patch CASP/COBJ/OBJD catalog flags into an override package. |
| analyze_last_exceptionB | Parse the newest lastException/lastUIException/lastCrash file and cross-reference it with the game Python and tuning indexes. |
| bridge_send_commandC | Send a command to a running game via the live bridge .ts4script. |
| rebuild_indexesC | (Re)build the vanilla tuning, game Python and TDESC indexes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| total_conversion_workflow | Guide an agent through a total-conversion build. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| config_resource | Resolved environment paths and cache locations. |
| indexes_resource | Status of the tuning and game-Python indexes. |
TDQS
Scored across 17 tools
Most tools map to a unique resource+action (package inspect/extract/build, tuning search/read, STBL creation, script build, live bridge, exception analysis). A few boundaries blur: `build_package` already handles .stbl.json while `create_stbl_dictionary` also writes STBL resources, and `compile_tuning_with_simdata` overlaps conceptually with package building and `query_tdesc_schema`'s starter XML. `hash_fnv` also partially duplicates the hashing inside `create_stbl_dictionary`, but descriptions make the intended split workable.
Nearly all tools follow a snake_case verb_noun pattern (inspect_package, build_package, search_vanilla_tuning, validate_and_build_ts4script). The main deviation is `bridge_send_command`, which uses noun_verb ordering, plus the short `hash_fnv` which names the algorithm rather than a clear object. Still highly readable and predictable overall.
At 17 tools this is on the heavy side, but the surface spans genuinely different workflows (package I/O, tuning index/search, STBL, SimData compile, Python API exploration, live bridge, crash triage). Each tool appears to earn its place rather than being a near-duplicate, though a few could conceivably be folded together.
The modding lifecycle is well covered: index building, vanilla tuning discovery, schema lookup, XML validation, SimData compile, STBL creation, package build/extract, script bundling, and crash analysis. Gaps remain around mutating existing packages (only inspect/extract, no add/remove/replace resource), and `bridge_send_command` has no companion for reading bridge responses, which limits round-trip debugging.