Mikes Moose MCP

Mikes Moose MCP

An MCP server that provides LLMs with accurate, version-matched MOOSE framework knowledge to generate valid and idiomatic DCS mission code, with tools for ingestion, lookup, validation, and mission/log parsing.

Category
访问服务器

README

Mikes Moose MCP

This is a helper that makes AI assistants (like Cline, Claude, or Cursor) much better at writing mission scripts for DCS World using the MOOSE framework. It works by giving the AI accurate, up-to-date information about MOOSE — so it stops guessing and starts writing code that actually runs.


What problem does it solve?

AI models are trained on internet data, and their knowledge of MOOSE is often out of date or just wrong. They might use a class that no longer exists, call a method with the wrong name, or write Lua that won't work in DCS.

This helper solves that by handing the AI a 10-megabyte reference manual it can dip into, without ever loading the whole thing. It's the difference between asking a friend who "kind of remembers" MOOSE, and handing them a book that's open to exactly the right page. Instead of relying on its memory, the AI can ask the helper:

  • "What methods does the SPAWN class have?"
  • "How do I schedule something to happen every 30 seconds?"
  • "Is this code I wrote valid MOOSE?"
  • "What group names are actually in my mission file?"
  • "Why did my script error out?"

The helper answers with small, precise facts pulled from your actual MOOSE files — not from the AI's fuzzy memory. The trick that makes this possible is that the 10 MB file is parsed once into a searchable index, and the AI only ever sees the little slice it asks for. Which raises the obvious question: how does that not obliterate the AI's (small) working memory? Read on.


Why a 10 MB file doesn't blow your AI's context window

This is the single most important idea in the whole project, so it's worth spelling out.

An AI assistant talks to you using a limited "working memory" called the context window — a budget of tokens (roughly, chunks of text) it can hold and reason over at once. MOOSE's main file is about 10 MB of Lua and documentation — far more than fits in that window. If you just pasted the whole file, you'd instantly blow the budget and the AI would stop working.

So this helper never sends the whole file to the AI. Instead:

  1. Parsed once, indexed forever. When you install, the helper reads the 10 MB Moose.lua, breaks it into 587 classes and 6,379 methods, and stores them in a small searchable index on your disk.
  2. The AI asks, the index answers. When the AI needs to know about, say, the SPAWN class, it doesn't get the whole file — it gets just SPAWN's documentation and method signatures. Maybe 200–500 tokens.
  3. Answering costs pennies of the budget. A single lookup is like opening one page of a book and reading it aloud. The other 9,999 pages stay closed on the shelf.
  4. Your version, not a stranger's. Because the index is built from your Moose.lua, the answers match the exact MOOSE build your missions use. The AI is never reasoning about an outdated copy.

The result: the AI gets the accuracy of a full 10 MB reference manual while only spending a few hundred tokens at a time. That's what makes it practical for small, budget AI models — not just top-tier ones.


What you need before you start

This is a one-time setup. You'll need:

  1. DCS World installed (any edition — Stable or OpenBeta), since the whole point is reading your mission files and logs.
  2. Node.js, the program that runs JavaScript helper tools like this one. If you don't have it or aren't sure, follow the short check below.
  3. An AI assistant that supports "MCP servers". Cline, Claude Desktop, and Cursor all do. If you're using Cline, you're already good to go.

Don't worry if you've never heard of MCP or Node before — the next two sections walk you through it with no assumed knowledge.


Step 1 — Do you have Node.js?

Node.js is a free program that runs helper tools on your computer. To check if you have it:

  • Windows: press the Windows key, type cmd, and press Enter. In the black window, type:
    node --version
    
    If you see something like v20.0.0, you have it. If you see 'node' is not recognized, you need to install it.

To install it (Windows):

  1. Go to https://nodejs.org
  2. Download the LTS version (the big green button)
  3. Run the installer — click Next through everything, using the default options
  4. Reopen the cmd window and run node --version again to confirm

Step 2 — Get and install this helper

There isn't a pre-built "release" you download and run. This helper is source code that you download once, then build on your own machine. It's not hard — the commands below do all the work.

Once Node.js is working:

  1. Get the software from here:

    https://github.com/thebgpikester/Mikes-Moose-MCP
    
    • Click the green Code button → Download ZIP, then unzip it to somewhere you'll remember — e.g. C:\moose-mcp.
    • (Or, if you have Git installed, you can instead run git clone https://github.com/thebgpikester/Mikes-Moose-MCP.git C:\moose-mcp — same result.)

    You should now have a folder C:\moose-mcp containing items like src/, package.json, README.md, and LICENSE.

  2. Open cmd and go into that folder:

    cd C:\moose-mcp
    
  3. Run the install command (this downloads the helper's dependencies — takes a minute or two the first time):

    npm install
    
  4. Run the build command (this compiles the source into the program your AI assistant will actually run):

    npm run build
    

That's it. The helper is now installed and ready.


How the helper finds MOOSE knowledge — your MOOSE, not a stranger's

The helper reads a Moose.lua file and turns it into a searchable index the AI uses to answer questions. There are two ways to give it that file. You can use one or both — it's quick and safe to switch between them.

Option A — Use the downloaded latest MOOSE (easiest, once)

Run this once to fetch the most recent official MOOSE framework file from the internet:

npm run download-reference

This stores a clean reference copy the helper can index. It's a good starting point, and it's the file used if you ever ask the helper to index "the latest MOOSE."

Option B — Use YOUR MOOSE (recommended for missions)

This is the important one. Your DCS/missions don't necessarily use the latest MOOSE — they use whatever Moose.lua you ship or load. So for answers that match your setup exactly, point the helper at your own file. You don't even need a command — just tell your AI assistant, and it will call the moose_ingest tool with the path to your file (for example):

moose_ingest
  path: "C:\\Users\\YourName\\Saved Games\\DCS\\Scripts\\Moose.lua"

It works with any real file path, including a network (UNC) share:

moose_ingest
  path: "\\\\ServerName\\Shared\\Missions\\Moose.lua"

It also works directly on a mission file, pulling out whichever Moose.lua is embedded inside it:

moose_ingest
  path: "C:\\Users\\YourName\\Missions\\MyMission.miz"

What to expect when you ingest a file

When the AI calls moose_ingest, you'll get a short status back, something like:

{
  "ok": true,
  "message": "Indexed 587 types, 6379 methods.",
  "status": {
    "source": "local",            // "local", "reference-download", or "miz-embedded"
    "filePath": "C:\\Users\\YourName\\Saved Games\\DCS\\Scripts\\Moose.lua",
    "commit": "2026-02-06...130d358f4a...",   // the exact MOOSE build, if detectable
    "typeCount": 587,
    "methodCount": 6379
  }
}

Three things to know:

  • Do this after you update MOOSE. If you switch to a newer/older Moose.lua, re-run moose_ingest with the new path. The index is rebuilt to match that file.
  • Re-ingesting the same file is free. The helper hashes the file; if nothing changed, it just refreshes the timestamp — no rebuild.
  • The index is for one file at a time. The current setup indexes the file you most recently asked for. If you switch between your local copy and the reference download, the last one you ingested is the one the AI sees. That's deliberate — it stops the AI from mixing answers across two different MOOSE versions.

Want to test it? Type npm test. It should run through a few checks and print something like All 5 suites passed. If it does, everything works.


Step 3 — Connect it to your AI assistant

An MCP server is just a small program that your AI assistant can talk to, like an extra pair of eyes. You tell your assistant where the helper is, and it does the rest.

If you use Cline

  1. Open Cline's settings (the ⚙️ icon, then "MCP Servers").

  2. Add a new server with these exact settings, changing the path to where you unzipped the project:

    {
      "mcpServers": {
        "moose-mcp": {
          "command": "node",
          "args": ["C:\\moose-mcp\\build\\index.js"]
        }
      }
    }
    

    (Make sure C:\moose-mcp matches where you actually put it.)

  3. Restart your assistant / reload the window.

If you use Claude Desktop

  1. Open the file claude_desktop_config.json (in Claude's settings folder — the app can open it for you).
  2. Add the same block above to the mcpServers section.
  3. Restart Claude.

After this, your assistant should show a list of new tools it can use (they're all named moose_*).


Step 4 — How to use it

Once connected, just talk to your assistant normally and it will use the MOOSE tools automatically when it makes sense. For example:

  • "Write a script that spawns a flight of F-18s when a unit enters a zone." — the assistant will look up the correct SPAWN and ZONE classes and write Lua 5.1 code that follows MOOSE best practices.
  • "Check this code I wrote" — paste in some Lua and ask it to verify. The assistant will check every class and method name against the real MOOSE.
  • "Tell me how to use CARGO" — it will point you at a real example in the official MOOSE missions repository, rather than guessing.
  • "Why did my mission error?" — if you've turned on the debug logger (see below), it can read your dcs.log and tell you exactly what went wrong and where, including which unit/group the error concerns.

Turning on the debug logger

If you want the helper to be able to read what actually happened in a mission (not just what should have happened), drop a small file into your mission:

  1. Ask your assistant for the file (or take it from src/logger-helper.lua in this project).
  2. Put it in your mission's Scripts folder, alongside (before) Moose.lua.
  3. Logging is on by default now. To turn it off later, set GM.DEBUG = false in that file.

With logging on, your assistant can parse dcs.log, find the current session, and tell you exactly what your script did — and what failed.


What's under the hood (in plain terms)

The helper has four jobs, and together they form a complete picture. Think of it as four reference books the AI can open:

Book What it answers
Framework Reference "What is this class? What methods does it have? What are the parameters?" — read directly from your actual MOOSE files, so it matches the version you're using.
Framework Practice "What's the right way to do this?" — rules based on years of experience (e.g., use TIMER instead of SCHEDULER, don't wrap lookups in pcall).
Mission Truth "What's actually in my mission file?" — the real group names, units, and triggers, so the AI doesn't guess a FindByName that will miss.
Runtime Truth "What actually happened when I ran it?" — read from your dcs.log, so you can see if spawned groups appeared, which functions are slow (via PROFILER), and what errored.

Why "version-matched" matters: DCS/missions use whichever MOOSE build they ship. The helper reads that file, so the AI never tells you about a method that doesn't exist in your version.


Troubleshooting

Problem What to do
'node' is not recognized Node isn't installed (or cmd wasn't restarted). Go back to Step 1.
npm install errors Usually a network issue. Re-run it; if it persists, check your internet connection / firewall.
My assistant doesn't show the moose_* tools The path in Step 3 is probably wrong. Double-check it points at build\index.js and restart your assistant.
npm test fails Try npm run build first (it refreshes the compiled files), then npm test again.
I can't find my DCS logs The helper looks in the standard spot: C:\Users\<you>\Saved Games\DCS\Logs\dcs.log (or DCS.openbeta for OpenBeta). It can usually find this itself.

For developers

  • Source code: everything is in the src/ folder (TypeScript files + one Lua helper).
  • Run from source (while developing): npm run dev
  • Test: npm test
  • The four pillars map to pillar1 (parser/index), pillar2-tools.ts (practice), pillar3-parser.ts (mission), pillar4-reader.ts (log).

In short: install once, connect once, and your AI assistant stops guessing about MOOSE and starts writing DCS mission code that works.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选