Changelog
What changed, release by release. The in-app update notice links here.
0.9.8 — 7 August 2026
Three changes that can break existing work. Please read these first.
- create_csg now requires a TACAN channel, an ICLS
channel and a Link 4 frequency for a blue carrier group. Existing calls
without them will fail, with an explanation.
They are not defaulted on purpose. DCS's own missions set a carrier's TACAN to its hull number — CVN‑71 on 71, CVN‑73 on 73 — which looks like a safe rule and is not: Iraq's own map beacons occupy channel 72 and Afghanistan's occupy 75. A clash there fails in the air, where nothing catches it, rather than at build time. The new list_tacan_beacons shows what a map already uses. - add_ship_group now refuses to place ships on dry land. Calls that previously succeeded will now fail. Every ship in the group is checked, not just the first — the case that catches people is a coastal position where the lead floats and a trailing ship beaches, which looks fine on the map. Pass terrain_check=false to override.
- add_static changed in both directions. A ship placed as a static object is now refused on land and accepted on water. Before, it was exactly backwards: a moored ship on water was rejected and the same ship inland was allowed. If you worked around that with terrain_check=false, that workaround is now unnecessary rather than broken — it will keep working, and you can drop it. Buildings on water are still refused, as before.
Audio in triggers never played. It does now.
- A radio transmission added to a mission was silent, and the Mission Editor
deleted it. Not on saving, as first reported — the editor could not read
the action at all, so the trigger was left holding nothing, and empty triggers fall out.
If the trigger had other actions you lost just the transmission; if it had only that
one, the whole trigger vanished.
Four separate faults, each enough on its own: the trigger zone was written by name where DCS wants its number, the frequency was in the wrong unit and a thousand times too high, a field DCS requires was missing entirely, and the modulation was inverted — asking for AM produced FM.
Checked against real DCS missions rather than guessed, then flown. - Nine other trigger actions had the same shape of fault and were fixed with it — all five ways of playing a sound, and four of the five ways of showing a picture. Each was missing a value DCS expects at the end.
Carriers.
- A carrier group now comes with TACAN, ICLS and Link 4. Without them
a carrier cannot be found and cannot be landed on, so what the tool produced before was
scenery. All three are attached to the carrier itself rather than to the group, which is
what DCS requires — attached to the group they write correctly into the file and
transmit nothing.
Verified in the air: DCS's own carrier kneeboard page, which it generates from the mission, came back reading TACAN 73X TR, ILS 13, Link 4 336.0 MHz and ATC 127.500 — every value as written.
FARPs.
- Each FARP now gets its own radio frequency and callsign. The Mission
Editor gives every FARP the same ones, so two FARPs in a mission are indistinguishable
on the radio. Frequencies start at DCS's usual 127.5 MHz and step from there;
callsigns come from the ten DCS offers. Both can still be set by hand, and the response
says what was chosen so you can change it.
A FARP placed with add_static had no radio at all. It does now.
Groups, airbases and file paths.
- Hidden on Planner, Hidden on MFD and Uncontrolled can now be set. All three could be read and set by nothing — not by modify_group, not when creating a group, and not through set_raw_lua, which refuses the part of the file where groups live. Uncontrolled is aircraft-only and now says so rather than quietly doing nothing.
- New set_airbase_coalition. An airbase's owner could be read, but only changed as a side effect of basing a flight at a neutral field — so a field handed to blue could not be handed back. list_airfields now reports the owner too, which it never did.
- File paths work the way you would expect. A relative path resolved against the server's own folder, which is inside Windows, and %USERPROFILE% was treated as a folder with that literal name. Both are fixed, a bare filename now goes to your DCS Missions folder, and every tool that takes a path reports the folder it used — so you should not be asked where your missions live any more.
- Deleting a group now removes what came with it. Placing a ground site can create a tree-clearing zone; deleting the group left it behind, clearing forest for a site that was no longer there.
- Asking for a specific parking spot that is too small now warns you, with the measurements. Only when you name the spot — letting dcs-mcp choose already avoids the problem.
- The uninstaller no longer reports that it could not remove everything. It was the running server holding its own files open; it is now stopped first.
Diagnostics and setup.
- If dcs-mcp has never started for you, it can now tell you why. A licence
failure used to report that the server was unreachable and leave it there, which is the
same message whether the cause is a proxy, antivirus scanning HTTPS, a system clock
that is wrong, or an out-of-date certificate store — and the fix is different for
each.
Update to 0.9.8, then paste these two lines into PowerShell:
$env:DCSMCP_DIAGNOSTICS=1
& "$env:LOCALAPPDATA\Programs\dcs-mcp\dcs-mcp.exe"
That runs the server on its own, outside Claude. It prints the exact error, and for a certificate problem it also prints the certificate your machine is actually being shown and your current clock — usually enough to identify the cause in one go.
If it prints an error and stops, that is the fault you are looking for. Everything it prints is safe to share — your licence key never appears — so paste the whole block on Discord and we can tell you what it means.
If instead it just sits there doing nothing, that is good news: it means dcs-mcp started correctly and is waiting for Claude to talk to it. Press Ctrl+C to stop it. It also tells us something useful — that the problem is in how Claude launches dcs-mcp rather than in dcs-mcp itself — so it is worth saying so on Discord too.
0.9.7 — 6 August 2026
Iraq and Afghanistan.
- Both maps are now supported, bringing the total to eleven. They have
been unavailable since the beta opened because the library dcs-mcp builds missions with
has no data for either — no airfields, no parking, no way to convert a map
coordinate to a latitude and longitude.
That data now ships inside each map's terrain pack, so installing Iraq gets you the terrain and the airfields together. Between them they add 46 airfields and 2,778 parking spots, every one with its real ramp name — so you can ask for a specific stand and get it.
Checked against Caucasus first, where the correct answer is already known: our data reproduced it exactly, all 900 parking spots and every field. Iraq and Afghanistan were then checked against published airport coordinates — Kandahar 0.0 km, Bagram, Kabul and Al‑Taji 0.1 km. Missions were flown on both maps before release.
Both maps are still being released by Eagle Dynamics in sections, and neither is complete. dcs-mcp will follow as further sections ship.
Parking.
- list_parking_spots now reports each spot's length,
width and height. Whether an aircraft fits is decided by the spot's size, and
those measurements were missing — so a spot could look suitable, be far too
small, and DCS would silently park the aircraft somewhere else. Bagram's stand M03 is
21 × 15 m; an A‑10C is 17.5 m wide. Nearly half that
airfield's spots are too small for one.
Passing aircraft_type still does the work for you and only returns spots that fit.
Diagnostics and setup.
- Licence failures now say what actually went wrong. A corporate proxy,
HTTPS-scanning antivirus, an out-of-date certificate store, a blocked DNS lookup and a
genuine outage all used to produce the same message: "the license server is
unreachable". Only one of those is a connection problem, and the advice that followed
was useless for the rest. Each is now named, with what to do about it.
Setting DCSMCP_DIAGNOSTICS=1 alongside your licence key prints a fuller report you can paste into Discord. It never includes your key. - The installer checks your key before installing. A mistyped key used to install cleanly and then fail at first start with a licence error, long after the installer had closed. It is now checked on the spot. Beta keys never contain the letters I, L, O or U — so if you have typed one where a 1 or a 0 belongs, it says so specifically.
Countries.
- The countries DCS starts with unassigned can now be used. A DCS
mission begins with only 30 of its 92 countries placed on a side. The rest —
among them Insurgents, Egypt, Iraq and Afghanistan — sat
unreachable: dcs-mcp could not assign them, and told you they were not real
countries. They were.
You can now assign any of them to a coalition and build with them, the same way the Mission Editor's Changing Coalitions screen does it. So asymmetric scenarios can use Insurgents, and Sinai can field Egypt.
Assignment is explicit. Placing units will not silently move a country onto a side — you assign it, then you build for it, exactly as in the Mission Editor. Two steps on purpose: which countries are on which side is a decision about the mission, not a side effect of adding an aircraft.
Ask for the mission's country roster to see everything available; unassigned countries are listed there rather than hidden.
Theatre list.
- list_theaters now matches what dcs-mcp actually
supports. One addition, one correction, one removal:
Added: Iraq and Afghanistan.
Renamed: "Germany" is now reported as GermanyCW, which is the theatre's actual name — the old entry was an internal class name. Same map, nothing lost.
Removed: Normandy and The Channel. These have no terrain data in this release, and listing them implied a support we do not offer. You can still create missions on them — new_miz accepts both and tells you the terrain queries will not work — but they are no longer advertised as supported.
0.9.6 — 4 August 2026
SAM sites work now.
- Site tools build one group instead of one group per unit. Every SAM
site, FARP, convoy, EWR and carrier strike group was being built with each unit in a
group of its own. In DCS a site's radar and launchers have to share a group to operate
as a system, so multi-component sites never engaged — every unit was present, the
mission looked correct in the Mission Editor, and the site simply never fired. This is
the defect disclosed with 0.9.5, and it is fixed.
Verified in the sim rather than only in tests: two identically-composed SA-3 sites, one built the old way and one the new, each with a target flying directly overhead. The new one fired and killed its target. The old one did nothing. - New: create_sa2_site. The SA-2 joins the other fifteen site builders.
- Sites now use DCS's own composition and layout. Site contents are read from the Mission Editor's template data in your DCS installation, so a site dcs-mcp builds matches what the ME's own template would place — including the support vehicles, which were previously not spawned at all. An SA-3 goes from six units to twelve. Ten site types use this; the remainder keep their existing composition, and if the template data can't be read, dcs-mcp falls back to the built-in composition and tells you it did.
Terrain.
- Placing ground units over water now fails instead of quietly succeeding. The check was already running, finding the water, and reporting it in a warning — then placing the units anyway alongside a "pass" verdict. It now refuses. Pass terrain_check=false if you want a placement over water on purpose.
Smaller changes.
- unit_count now reports units. It previously reported groups, which happened to be the same number until this release.
- add_coalition_attrition_goal counts units by default. With a site now being a single group, a percentage goal measured against groups would have rounded to "destroy the entire site" for any value you asked for.
- Site builder responses changed shape: components carries unit ids rather than group ids, and group_ids is a single id. Missions you have already built are unaffected — this changes what the tools return, not what they wrote.
Upgrading. Run the installer over your existing installation. Your license key and installed terrain packs are preserved — leave the key field blank.
0.9.5 — 3 August 2026
Trigger actions.
- Twelve trigger actions are now documented. The sound, picture, script-file and radio-transmission actions that work with files you add through add_resource were fully implemented but listed nowhere, so Claude had to guess they existed. They are now documented with their complete parameter sets.
- Unknown parameters are now rejected rather than ignored. Previously, a misspelled or invented parameter name was accepted and silently discarded — the mission looked correct, saved cleanly, and quietly used default values. You now get an error naming the valid parameters for that action. If something you were doing appears to have "stopped working," it was silently doing nothing before.
- Mission reports now show picture-action parameters correctly. They previously displayed a ? where the coalition should be and omitted the display duration entirely.
Terrain.
- dcs-mcp now tells you when a theater's terrain data isn't installed — at the moment you create or open the mission, rather than after units have been placed. The message says what is unavailable and how to fix it.
- Water checks no longer answer without terrain data. Previously, with a theater's pack missing, water checks fell back to a coarse coastline dataset and returned a confident answer that was unreliable near shorelines — exactly where ships, FARPs and shore units get placed. They now report unavailable, consistent with every other terrain check.
Known issue, disclosed with this release. SAM site tools build each unit as its own group rather than one group for the whole site, which stops multi-component sites from functioning. This predates the beta and is the next release's priority. Details and a workaround on the known issues page.
Upgrading. Run the installer over your existing installation. Your license key and installed terrain packs are preserved — you can leave the key field blank.
0.9.4 — 2 August 2026
Coalitions. This release fixes how sides are assigned, which was wrong in several related ways.
- The coalition you ask for is now honored when adding groups. Previously the country decided the side and your request was ignored — asking for a Ukrainian group on blue silently produced a red one. Group tools now place units on the side you asked for, or tell you clearly when that country isn't on it.
- New: you can assign a country to a side. Move any country to blue, red or neutral — the same thing the Mission Editor's three-column view does. Units belonging to that country move with it. This is what makes scenarios like Ukraine on the blue side possible.
- Groups on the neutral side are no longer invisible. When editing an existing mission, a group could be created and written to the file and then not appear in any listing — it existed but you couldn't see it. Fixed.
- Flights no longer silently hand an airbase to the other side. Creating a flight could quietly change who owned its departure airbase. Now an unclaimed airbase is claimed and reported, and one belonging to the other coalition is refused rather than taken.
One deliberate quirk worth knowing: dcs-mcp won't create units for a country on the neutral side, matching the Mission Editor, which doesn't offer that either. It will let you move a country to neutral while it still holds units, because DCS accepts that state.
Other fixes.
- The installer no longer claims a license key is required when you're upgrading an installation that already has one.
- The Terrain Manager now marks theaters that are installed but no longer offered, so their status is legible instead of puzzling.
Upgrading. Run the installer over your existing installation. Your license key and installed terrain packs are preserved — you can leave the key field blank.
0.9.3 — 1 August 2026
Bug fixes.
- Custom trigger-zone colours no longer break missions. Setting a custom colour on a trigger zone produced a mission that DCS could not load — the Mission Editor hung on open. Any zone colour you set now saves correctly and the mission loads normally. This affected add_zone, add_polygon_zone, and changing a zone's colour after creating it; all three are fixed.
- "GermanyCW" is now recognised as a theater name. Asking for a mission on Germany Cold War by the name shown on this site and in the Terrain Manager previously failed. Both "GermanyCW" and "Germany" now work.
- Theater names now work in any capitalisation. Lowercase names such as "kola" or "germany" could cause the server to error instead of creating the mission.
- The "unknown terrain" error now lists every theater you actually have. It previously showed a fixed, out-of-date list that omitted working theaters — so it could tell you a theater was unavailable when it was installed and working.
- Clearer licensing messages.
Upgrading. Download and run the installer over your existing installation. Your licence key and any terrain packs you have installed are preserved — you can leave the key field blank during the upgrade.
Terrain catalog update — 1 August 2026
Server-side changes to the Terrain Manager catalog. No new download needed; dcs-mcp itself is unchanged at 0.9.2.
- Sinai terrain analysis fixed. A packaging error left elevation, line-of-sight, and terrain-aware placement unavailable on Sinai — missions built fine, but without terrain awareness. Re-install it to pick up the fix: open the Terrain Manager and run remove SinaiMap then install Sinai. (Doing it in that order avoids holding two copies at once; if you skip the remove, about 300 MB of the old pack stays on disk and can be cleared later.)
- Iraq and Afghanistan withdrawn. Neither mission creation nor terrain analysis worked on those maps in this build, so the packs were inert. They have been removed from the Terrain Manager; run remove Iraq / remove Afghanistan to reclaim the space. Support is planned.
0.9.2 — 24 July 2026
The signed launch build.
- Code-signed binaries: the server executable and the installer now carry a verified publisher signature (Azure Trusted Signing, timestamped). SmartScreen shows a verified publisher instead of "Unknown"; early-reputation prompts may still appear for a while and are expected.
- No functional changes from 0.9.1.
0.9.1 — 21 July 2026
Beta-hardening fix from installer testing.
- Microsoft Store builds of Claude Desktop are now supported: the installer registers dcs-mcp in both the classic and Store (packaged) config locations, and the uninstaller cleans up both. If dcs-mcp showed "No servers added" after installing 0.9.0, this release fixes it — run the new installer over your existing install.
0.9.0 — 21 July 2026
Initial open-beta release.
- 154 mission-authoring tools for Claude: groups, routes, loadouts, triggers, zones, SAM/AWACS/tanker/CAP/SEAD/strike templates, FARPs, carriers, convoys, briefings, kneeboards, F10 drawings, warehouses, weather, terrain-aware placement (line-of-sight, terrain profiles, water checks), and full .miz read/write.
- Standalone installer — installs per-user, registers itself with Claude Desktop, no manual config editing.
- Terrain support: Caucasus included with the installer; Syria and Kola available now via the built-in Terrain Manager, with more theaters coming during the beta.
- Beta licensing: free keys via Discord (/claim), validated online, with a 7-day offline grace window.
- Update notifications: dcs-mcp checks for new releases on start and points you here.
Known limitations (beta)
- Terrain analysis is bare-earth: elevation and line-of-sight don't account for buildings or trees.
- Missions edited simultaneously by dcs-mcp and the DCS Mission Editor should be saved by one writer at a time.
- The Channel, Normandy, and Marianas WWII are not supported during the beta; support beyond that is to be determined.
- Unsigned beta binaries trigger a SmartScreen prompt (see the download page).