CMO and AI integration
Moderator: MOD_Command
CMO and AI integration
Will CMO ever ( in my life time) have an MCP server capability to do more advanced things like more automated scenario development? Frankly, it would seem to be more of a Pro feature. But thought I would ask.
Re: CMO and AI integration
I won't say never, but probably not.
Re: CMO and AI integration
For civ you can create an "offline" MCP server that help your agents to write lua and automate things using the Lua API documentation or the IntelliSense plugin. You'll need to copy that into Command Console so it's not "real time automation" but I think it could be useful
-
Knightpawn
- Posts: 717
- Joined: Mon Dec 02, 2024 12:28 pm
Re: CMO and AI integration
That is how i write my luablu3s wrote: Mon Aug 31, 2026 8:01 am For civ you can create an "offline" MCP server that help your agents to write lua and automate things using the Lua API documentation or the IntelliSense plugin. You'll need to copy that into Command Console so it's not "real time automation" but I think it could be useful
What is the IntelliSense plugin, and how does it help?
Re: CMO and AI integration
Yeah, I have used some of the lua capabilities in Claude. I was wondering more around laying out a narrative and than Claude generating a full scenario (OK...may 90%). But got my answer.
Re: CMO and AI integration
The key is to give examples to the agent, make the agent to write a skill based on examples, understand how the trigger/action system works, the different types of missions etc.
Then placing a narrative in top of that and the agent will know how to translate that narrative into a Command scenario.
You can create an MCP over the Lua API and point it to Claude to that in order to search how to do things. I already have an MCP working over that but I'm not sure if I can make it public, but you can also ask an agent to make your own, it's not a hard task, the key it's to keep the Lua files as single source of truth and build the MCP from those files.
Then placing a narrative in top of that and the agent will know how to translate that narrative into a Command scenario.
You can create an MCP over the Lua API and point it to Claude to that in order to search how to do things. I already have an MCP working over that but I'm not sure if I can make it public, but you can also ask an agent to make your own, it's not a hard task, the key it's to keep the Lua files as single source of truth and build the MCP from those files.
Re: CMO and AI integration
I actually ended up using two LLMs...Gemini Pro and Claude Sonnet 5. Gemini was much better at building the test narrative (attached) and the CMO lua scripting. But claude ended up being more detailed and complete. I took what Gemini gave me as a narrative and some lua scripting and put it through claude. claude actually spotted a few errors and recognized some gaps in mission building from Gemini. More semi-automated, but a big help.
btw, I ran the same narrative prompt in Gemini and claude. Gemini got a good one faster and more complete than claude. Gemini also seemed more in tune with CMO's lua docs that claude. Starting from scratch, claude had lua functions that aren't usable in CMO. Once I used the gemini scripts as a starting point though, claude seemed better.
I'll be entering the rest of the scripts tonight and see how the whole thing comes together.
btw, I ran the same narrative prompt in Gemini and claude. Gemini got a good one faster and more complete than claude. Gemini also seemed more in tune with CMO's lua docs that claude. Starting from scratch, claude had lua functions that aren't usable in CMO. Once I used the gemini scripts as a starting point though, claude seemed better.
I'll be entering the rest of the scripts tonight and see how the whole thing comes together.
- Attachments
-
- 2026 TAIWAN STRAIT HIGH INTENSI - Kevin Prouty.pdf
- (269.15 KiB) Downloaded 63 times
Re: CMO and AI integration
Just to close out...
The AI, both Claude and Gemini, are useful for the overall narrative, they don't really automate much beyond that.
What they are useful at:
1) building a narrative to the scenario, as posted above
2) organizing the OOB. But it takes a lot of prompting and skill development to get it somewhere near realistic
3) Giving a framework for scripting
4) Did an OK job of building out a framework of missions
5) The AI did a pretty good job of evaluating ranges of aircraft and weapons then warning about it.
What it doesn't do well:
1) Create a narrative that is complete in a simple prompt. It takes quite a few iterations and double checking to make sure there are no gaps
2) Create a complete script for all of the units, their magazines, and loadouts. Even though its in the narrative it built, it neither included aircraft at bases or BM facilities. It also didn't check for magazine depth.
3) It made up dbid numbers for all scripts. After letting the AI build the scripts, I had to go through and fix 80-100 add_unit scripts.
4) It was inconsistent in using the names of the sides it created itself. Had to go through every script for units and missions and check and change them.
5) It was inconsistent in laying out missions and ended up using too many aircraft one mission and then staring another mission of units.
6) AI had very little ability to evaluate AAR refueling needs, even when given a detailed prompt.
Was it helpful? Yes, definitely.
Will it automate building anything beyond a simple scenario? No.
Will I use it again? Yes, definitely.
Will it get better as I get more experience? Yes.
Is it more work building the prompts to used just once? Yes.
Overall, I learned an immense amount about how to write better prompts and about lua in CMO. But unless you plan on doing this a lot, you might be better off just building the scenario outright. Might be useful to collect prompts in a central location for reuse by other players.
The AI, both Claude and Gemini, are useful for the overall narrative, they don't really automate much beyond that.
What they are useful at:
1) building a narrative to the scenario, as posted above
2) organizing the OOB. But it takes a lot of prompting and skill development to get it somewhere near realistic
3) Giving a framework for scripting
4) Did an OK job of building out a framework of missions
5) The AI did a pretty good job of evaluating ranges of aircraft and weapons then warning about it.
What it doesn't do well:
1) Create a narrative that is complete in a simple prompt. It takes quite a few iterations and double checking to make sure there are no gaps
2) Create a complete script for all of the units, their magazines, and loadouts. Even though its in the narrative it built, it neither included aircraft at bases or BM facilities. It also didn't check for magazine depth.
3) It made up dbid numbers for all scripts. After letting the AI build the scripts, I had to go through and fix 80-100 add_unit scripts.
4) It was inconsistent in using the names of the sides it created itself. Had to go through every script for units and missions and check and change them.
5) It was inconsistent in laying out missions and ended up using too many aircraft one mission and then staring another mission of units.
6) AI had very little ability to evaluate AAR refueling needs, even when given a detailed prompt.
Was it helpful? Yes, definitely.
Will it automate building anything beyond a simple scenario? No.
Will I use it again? Yes, definitely.
Will it get better as I get more experience? Yes.
Is it more work building the prompts to used just once? Yes.
Overall, I learned an immense amount about how to write better prompts and about lua in CMO. But unless you plan on doing this a lot, you might be better off just building the scenario outright. Might be useful to collect prompts in a central location for reuse by other players.
-
Knightpawn
- Posts: 717
- Joined: Mon Dec 02, 2024 12:28 pm
Re: CMO and AI integration
@thewood1
Hi
I did not understand what was your starting point, your aim, and where in the process did you use the LLMs. Was it to design a scenario from scratch, to plan for a given scenario or something else?
Hi
I did not understand what was your starting point, your aim, and where in the process did you use the LLMs. Was it to design a scenario from scratch, to plan for a given scenario or something else?
Re: CMO and AI integration
I had it build a narrative, then a detailed OOB, then specific long, lat locations. After that, I asked it to build the script for replicating it in CMO, using its own narrative. It took a lot of iterations and maybe 4-6 hours of testing what it built in chunks then providing feedback. I have gotten the scenario to a point now that maybe 10-12 hours of work will get it usable.
-
Knightpawn
- Posts: 717
- Joined: Mon Dec 02, 2024 12:28 pm
Re: CMO and AI integration
Thanks
This is how - by and large - built my recent scenario for Al Kibar Strike mainly with Claude (and played with Grok for some scripting)
1 I had it done extensive OSINT research
2 based on that it built ORBATs for the sides I wanted to include in the scenario (see attached)
3 I had it read the DB_518 file and asked it to geolocate the SAMs and Radars derived from 1 above and produce a lua script to insert them directly (with access to DB it could pick proper unit IDs
4. Based on 1 above we build a narrative for the intro and a briefing (on a template I had used in my first scenario)
This is how - by and large - built my recent scenario for Al Kibar Strike mainly with Claude (and played with Grok for some scripting)
1 I had it done extensive OSINT research
2 based on that it built ORBATs for the sides I wanted to include in the scenario (see attached)
3 I had it read the DB_518 file and asked it to geolocate the SAMs and Radars derived from 1 above and produce a lua script to insert them directly (with access to DB it could pick proper unit IDs
4. Based on 1 above we build a narrative for the intro and a briefing (on a template I had used in my first scenario)
- Attachments
-
- Orchard_ORBAT_2007.zip
- (71.1 KiB) Downloaded 9 times
Re: CMO and AI integration
I had to make a bunch of corrections on the OOB. I never explicitly told what db to use. Just use the CMO db.
The other issue I ran into with claude with the PRO llm was it made up a couple functions I had to fix. I might try writing a longer prompt more detailed prompt being specific on the db. My main issue is that I'm finding myself having to be so specific, I might as well just build it myself through the lua console.
Actually a best practice from work is take a detailed narrative and tell claude to build a prompt that replicates the narrative. Then you can start using that as a template. Keep iterating it until its complete enough to almost be a skill by itself.
The other issue I ran into with claude with the PRO llm was it made up a couple functions I had to fix. I might try writing a longer prompt more detailed prompt being specific on the db. My main issue is that I'm finding myself having to be so specific, I might as well just build it myself through the lua console.
Actually a best practice from work is take a detailed narrative and tell claude to build a prompt that replicates the narrative. Then you can start using that as a template. Keep iterating it until its complete enough to almost be a skill by itself.
Re: CMO and AI integration
You can upload the .db3 file and it can read it and work from that. I have done that in the past with Claude for various things, saves a lot of time.
Re: CMO and AI integration
Yes, I got that from KnightPawn's reply.
-
Knightpawn
- Posts: 717
- Joined: Mon Dec 02, 2024 12:28 pm
Re: CMO and AI integration
Next challenge (for me) is to devise a process whereby I can show the AI the briefing, share the non-player units geolocated on the map (i guess the export file is the way to do it) having however filtered out all units that are not auto-detectable, and ask it to come up with a plan - so that the AI sees what the player sees. I need to solve the auto-detectable thing.
PS...and then start a Palantir competitor
PS...and then start a Palantir competitor
Last edited by Knightpawn on Wed Sep 02, 2026 2:54 pm, edited 1 time in total.
Re: CMO and AI integration
@thewood1 Read too quickly and missed that 
Re: CMO and AI integration
This is the error I got and I suspected I would get...
"That is completely my fault, and I apologize for the frustration. Because I do not have direct, live access to the proprietary CMO DB3000 v518 database files, the dbid and loadoutid numbers I provided were approximate placeholders based on older database iterations (v490-v500)."
Any advice on what I need to do to get it using the proper IDs. With up-to-date IDs it works on a few units. But I have dozens I need to work through.
"That is completely my fault, and I apologize for the frustration. Because I do not have direct, live access to the proprietary CMO DB3000 v518 database files, the dbid and loadoutid numbers I provided were approximate placeholders based on older database iterations (v490-v500)."
Any advice on what I need to do to get it using the proper IDs. With up-to-date IDs it works on a few units. But I have dozens I need to work through.
Re: CMO and AI integration
Did the AI reject the .db3 file? If so what LLM were you using? When I put DB 518 into Claude it was able to read pretty much everything.
-
Knightpawn
- Posts: 717
- Joined: Mon Dec 02, 2024 12:28 pm
Re: CMO and AI integration
how do we explain the following thenthewood1 wrote: Wed Sep 02, 2026 8:37 pm This is the error I got and I suspected I would get...
"That is completely my fault, and I apologize for the frustration. Because I do not have direct, live access to the proprietary CMO DB3000 v518 database files, the dbid and loadoutid numbers I provided were approximate placeholders based on older database iterations (v490-v500)."
Any advice on what I need to do to get it using the proper IDs. With up-to-date IDs it works on a few units. But I have dozens I need to work through.
ME: In the lua folder there is a db_518.db3 file. Can you read its content? For example can you extract the DB id for a particular unit?
CLAUDE:
Confirmed readable — and this settles the open question about the G550. Checking its sensor fit:Yes — the `.db3` is a plain, unencrypted **SQLite 3** file. 61 MB, 179 tables, no obfuscation. I can query it read-only in place on your machine without staging it.
**Your scenario's DB IDs, verified against the database:**
| ID | Name | Country | In service |
|---|---|---|---|
| 2704 | F-15I Eagle [Ra'am] | 2046 (Israel) | 2007– |
| 762 | F-16I Falcon [Sufa] | 2046 | 2005– |
| 2955 | Gulfstream G550 AEW [Nahshon-Shavit, SEMA] | 2046 | 2007– |
| 311 | Boeing 707 EL/L-8300 [EC-707 Chasidah] | 2046 | 1982– |
| 2700 | Boeing 707-320 Tanker [KC-707 Saknayee] | 2046 | 1983– |
| 3520 | F-16DG Blk 40 Falcon [Peace Onyx I] | 2097 (Turkey) | 1998–2014 |
All six check out, including the Turkish Block 40 being period-valid.
**And this answers the open question from the review — the one I flagged as the single item that could undo the premise.**
DB 2955 carries exactly two sensors:
```
1593 Generic ESM [Advanced] type 3001 (ESM)
2317 Generic SIGINT type 3001 (ESM)
```
**Zero radar-family sensors.** I checked explicitly against type range 2001–2999, which is where every radar in the database lives (2,677 of them) — the count for that airframe is 0. It doesn't even carry a weather radar, where the EC-707 next to it does.
So the "AEW" in the name is a naming artefact of the DB entry, not a modelled capability. CMO models that airframe as what the Nachshon-Shavit actually was: a passive SIGINT/ELINT platform. **It does not give Israel airborne early warning, and the premise holds.** Review item #1 can be closed — no swap, no radar to switch off.
The separate point stands on its own merits: three airframes is still generous for one night, and the credible 2007 stack is one Shavit plus the 707s. But that's a design call now, not a correctness problem.
I've put **`dbfind.py`** in your LUA folder next to the database:
```
python dbfind.py "tin shield" -y 2007 # name -> ID, filtered to in-service
python dbfind.py -i 2955 --sensors # dump a record and its sensor fit
python dbfind.py --country 2046 -t air -y 2007
python dbfind.py --sql "select ..." # SELECT only
```
It opens the file `mode=ro&immutable=1` and refuses anything that isn't a SELECT, so it can't touch your database.
Want me to update file 12's status table to close item 1 with this evidence?