Infection Free Zone MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IFZ_MCP_LANG | No | Language for MCP tool descriptions. Allowed values: zh-CN, en, ja, ru. Defaults to en. | en |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| statusB | Check whether the configured IFZ game and its current settlement are ready. |
| get_stateC | Read time, pause reasons, HQ, player squads and the last bounded advance. |
| hud_messageC | Show a short message on the in-game HUD overlay so the player can read AI updates and alerts without leaving the game. |
| get_world_dataB | Read a page from live game objects across the map. Nonplayer groups include hidden groups. Use get_map_buildings for building details. |
| get_map_buildingsA | Read one page of buildings. Choose full for the whole map, nearby for a circle, or route for a corridor. Follow next_offset for another page. |
| get_navigation_pointC | Project a world point onto the game's walkable ground mesh and read its height and area. |
| get_terrain_gridB | Sample the game's navigation graph into a terrain grid in one call: walkability, water, roads, building interiors, bridge candidates and optional ground heights. Much faster than repeated get_navigation_point calls (needs plugin 0.2). |
| acquire_controlB | Claim the shared write lease or renew it by passing the existing token. |
| release_controlB | Pause any active advance and release the write lease. |
| pauseB | Apply gameplay pause without dismissing popups. |
| set_stockpile_amountA | Set a supported resource in the shared stockpile while paused. Read resource_types for editable IDs and pass the current quantity as expected_amount. |
| move_squadA | Queue a native move 6–100 world units away. Set replace_orders to override existing orders or move a vehicle. Pause first. Retry with the same request_id. |
| move_npc_groupC | Submit a native movement target for a nonplayer group. NPC AI may choose another target after simulation resumes. |
| attack_groupB | Queue a native attack on a visible hostile group. Read the squad's active and queued orders to follow it. |
| scavenge_buildingC | Send a squad to enter and scavenge a building that can be scavenged. |
| return_to_stockroomA | Order a squad into a shared stockroom or headquarters. Aboard a vehicle the game unloads the trunk on arrival; a walking squad enters on foot and deposits carried resources. Omit stockroom_id to return to headquarters. |
| take_vehicleA | Order a walking squad to reach a discovered abandoned vehicle and take it over. The squad walks there and boards natively; read squads and vehicles afterwards to confirm the owner change. |
| set_building_workersC | Change a building job's worker limit using the same setter as the game. Read worksites for assigned workers and valid limits. |
| equip_squad_memberC | Equip an existing weapon from squad cargo or stockpile. Uses one weapon and drops the previous non-default weapon via the native handler. |
| refill_squad_member_ammoC | Refill a member's weapon from matching ammunition in the chosen container. |
| get_orderC | Inspect the result of a move. Read position and target to verify arrival. |
| advanceA | Run the simulation at normal speed for at most 1–12 wall-clock seconds. Poll get_state. The bridge reapplies gameplay pause at the deadline unless keep_running is set. Background advance requires Unity to run in the background and explicit allow_background. |
| get_building_infoB | Read one building: type, state, scavenge flags, resource icons (Gun/Fuel/Drugs/Tools/Metal/Warehouse...), and loot details when a squad has already entered it (scavenge progress + remaining crates). |
| get_scavenge_progressB | List every in-progress scavenge: progress 0-1, time left, remaining loot crates and characters inside. |
| find_buildings_by_poiC | Find buildings by map resource icon: pass POI archetypes such as ["Gun","Fuel","Drugs","Metal"]. Uses the same OSM tag rules as the in-game icons. |
| get_missionsB | Detailed active missions: title key, chapter, time limit and per-objective progress (kill counts, hideout counts, buildings visited). Optionally list all objective types. |
| get_expedition_tilesA | List loaded expedition tiles: area/location type, resource icons (Gun/Fuel/Drugs...), scavengable state, scavenge progress and collected resources. Open the world map in-game first so tiles load. |
| get_vehicle_mapA | List every vehicle on the map including undiscovered wrecks (get_world_data only shows discovered/owned ones), with type, state, fuel, cargo and distance to HQ. |
| cheat_listA | List the available cheat/debug bridge methods and their arguments. Requires the write lease. |
| cheat_heal_squadsA | Heal every member of the player's squads back to full health (keeps current max HP). Requires the write lease. |
| cheat_refill_ammoA | Refill the ammunition of every weapon carried by the player's squads. Requires the write lease. |
| cheat_add_resourcesA | Add resources straight into the shared stockpile, bypassing scavenging. Requires the write lease. |
| cheat_unlock_expeditionA | Unlock every expedition tile on the world map. Requires the write lease. |
| cheat_complete_missionsA | Immediately complete all active missions and their objectives (story progression shortcut). Requires the write lease. |
| cheat_scavenge_allB | Mark every abandoned building on the map as scavenged in one step. Requires the write lease. |
| cheat_set_timeA | Set the in-game day/hour or the time-speed multiplier. Requires the write lease. |
| cheat_spawn_squadA | Spawn a new player squad at a walkable position. Requires the write lease. |
| cheat_reveal_groupsB | Reveal every hostile group on the map, including hidden ones. Requires the write lease. |
| cheat_complete_missionA | Complete the objectives of ONE active mission (by mission_id). Safer than cheat_complete_missions which finishes everything. Requires the write lease. |
| get_weatherA | Read current weather, moon phase and the 38-day forecast from the newest save file. The bridge has no weather endpoint, so this reads on-disk save data and may lag by up to one in-game day. A full moon night usually brings a large horde. |
| observeA | Composite snapshot: game time, HQ, squads with vehicles, stockpile, hostile summary and weather in one call. Aggregates several bridge reads (no extra plugin support needed). |
| get_threatsB | List hostile groups with distance/direction to HQ and to player squads, plus whether they are moving toward the settlement. Hidden groups are included by default. |
| get_economyB | Resource shortfalls versus development thresholds plus worksite staffing (idle construction jobs) in one call. |
| get_squads_reportB | Squad roster with orders, health, cargo, assigned vehicle, trunk load and fuel in one call. |
| get_events_reportB | Active missions with objective completion and a list of triggered events, condensed. |
| get_save_infoA | Local save metadata (newest save name, in-game day/time text, city) plus weather and moon phase. Works even when the game bridge is offline. |
| get_map_infoA | Map bounds, tile size and city name from the running game. |
| get_recommendationsB | Heuristic action list for the AI squad leader: defend, resupply, reassign workers, retreat wounded. |
| bridge_probeB | Measure round-trip latency of the game bridge and report session readiness. |
| export_snapshotA | Write a JSON snapshot of the current world (time, squads, threats, economy) to .local/snapshots/ and return the file path. Read-only with respect to the game. |
| get_terrain_reportA | One-call terrain analysis: water/road/wall/building shares, bridge candidates with coordinates, elevation range and the clearest corridor rows. Uses get_terrain_grid internally. |
| plan_routeB | Plan a walkable route between two world points on the game's pathfinding graph (roads cost less, water/void blocked). Returns distance, waypoints and how many bridge cells the route uses. |
| get_loot_targetsB | Rank un-scavenged buildings for the AI squads: nearest targets, per-squad distances and building clusters (dense areas give more loot per trip). |
| get_scavenge_planA | Greedy scavenging plan: assigns each squad its own nearest cluster and returns concrete building_id sequences that can be executed with scavenge_building. |
| get_daily_reportA | Concise situation report combining time, weather/moon, economy shortfalls, hostile summary, mission progress and heuristic recommendations. |
| get_colonists_reportB | Population overview: totals, children, job distribution, armed/unarmed adults, wounded count and the workers assigned to each job. |
| get_weapons_reportA | Weapon and ammunition overview: weapon types available, magazine sizes, per-squad composition and members without firearms. |
| get_worker_balanceB | Compare idle construction jobs with the current job distribution and suggest which sites to staff first. |
| get_changesA | Diff since the previous call in this MCP process: stockpile deltas, squad health changes and hostile count change. Call repeatedly to watch the settlement. |
| get_vehicle_huntB | List vehicles with ownership, cargo/fuel and the nearest squad, plus unowned vehicles suitable for early-game capture. |
| get_progressionA | Read the save's ContentStateController: which buildings, productions, enemy spawn types and tech are unlocked vs still locked by story progression. Works offline (no game bridge needed). |
| diagnose_pauseA | Explain why the game is paused (popup / UI panel / manual or event pause / focus loss) and what can resume it. |
| wait_unpausedA | Poll until the game is unpaused (and no popup/UI pause), up to a timeout. Useful right before issuing orders. |
| get_enemy_reportB | Enemy overview: every hostile group with type, member count, weapon mix, firepower score, distance/direction, whether it is moving toward the settlement, and the nearest squad. |
| get_enemy_lairsA | List infected/bandit lairs (hideout groups) with strength, distance, direction and a rough threat ranking, so the AI can decide which nest to clear first. |
| get_enemy_movesA | Track hostile group movement between calls (persisted to .local/cache): shows groups that changed position/destination, their speed and estimated arrival at HQ. |
| get_combat_estimateB | Heuristic combat estimate for chosen squads against one hostile group: firepower scores, member counts, HP, and advice (attack / retreat / need reinforcements). |
| get_infected_typesA | Break down infected groups by variant: normal infected, infected dogs, suicide bombers (explosives), alpha infected, birds, giants and boosted variants. Returns counts, HP range, tier and which squads are nearest. |
| get_animal_reportB | Animals overview: infected animals (dogs, birds, bears, moose, bulls, giants) plus normal wildlife (boar, deer), with species, count, distance and hostility. |
| get_neutral_reportA | List non-hostile groups: neutral bandits (hostile_to_player=false), animals, immigrants and other neutral factions, with weapons, distance and whether they can be attacked at all. |
| get_enemy_densityB | ASCII heatmap of hostile group members over the map (default 250-unit cells), useful for seeing where the threats concentrate. |
| get_resource_hotspotsB | One-call scan of buildings carrying resource icons: for each POI type (Gun/Fuel/Drugs/Tools/Metal/Warehouse/Food) show how many exist and the nearest few, using the same OSM icon rules as the game. |
| get_expedition_summaryA | Expedition overview: loaded tile count, scavenged fraction, area/location type distribution, aggregated resource icons (Gun/Fuel/...) and the richest tiles. Open the world map in-game first. |
| get_mission_planA | For every active mission objective, produce concrete next actions from live data: which hostile groups to kill, buildings to scavenge/adapt, markers to visit, wounded squads to heal, idle worksites and sunset countdown. Complements get_missions (which lists objective types). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 74 tools
Read-side tools overlap heavily: observe, get_daily_report, get_state, get_world_data, get_save_info and get_threats all return overlapping world snapshots, and the enemy family (get_enemy_report, get_enemy_lairs, get_enemy_moves, get_infected_types, get_animal_report, get_neutral_report, get_enemy_density, get_threats) has fuzzy boundaries. Descriptions hint at differences (e.g. get_mission_plan complements get_missions), but an agent could easily pick the wrong report for a simple question.
Everything is snake_case and reads consistently, and cheats share a cheat_ prefix. However verbs are mixed: bulk reads use get_*, while many action tools use bare imperatives (observe, status, pause, advance, move_squad, scavenge_building, take_vehicle, hud_message), so there is no single predictable pattern.
74 tools for one game bridge is far beyond a well-scoped surface, and many earn no unique place (a dozen near-duplicate enemy/report readers). The cheat_* family alone adds ten rarely-used tools, pushing the set well past the 50+ extreme-mismatch threshold.
Coverage of reading state, movement/combat/scavenge orders, terrain routing and cheats is broad, but core loop operations are missing: no construction/placement order, no research/tech assignment (only reading progression), no recruitment or squad management beyond equipping, and no save/load. Agents can read nearly everything but cannot drive several major game systems.