DCS-ME-gateway
DCS 미션 저작 게이트웨이
dcs-me-gateway는 AI 미션 설계자와
DCS-SMS 미션 에디터 브리지 사이에 있는 로컬 MCP 서버입니다. 많은 취약한 에디터 명령을 작고 버전이 관리되는 저작 프로토콜로 변환합니다.
게이트웨이는 UI를 클릭하지 않으며 DCS에 초점을 맞추지 않습니다. 요청은 기존 DCS-SMS 사서함에 기록됩니다. DCS가 포커스되지 않았고 미션 에디터 업데이트 루프가 제한된 경우, 요청은 틱이 재개되거나 호출자가 선택한 마감 시간이 만료될 때까지 대기합니다.
0.9에서 구현된 기능
35개의 MCP 도구: 업데이트 탐지, 미션 저작/검증, 영구 의미 맵 및 수문학 전처리, 오프라인 쿼리, 실시간 맵 검사, 실시간 비행장 및 항공모함 패키지 할당, 기본 전송 라우팅, DCS 작성 무장 탑재량 탐지, 실시간 AI 작업 탐지, 비행 프로필/시간 계획, 패키지 템플릿, 도면, 결정적 미션 문서, 선택적 Skynet-IADS 설정, 제한된 오프라인 외부 콘텐츠 관리.
미션 환경, 그룹, 유닛, 무장, 경로, 형식화된 웨이포인트 옵션/동작, 명명된 그룹 트리거 동작, 트리거, 원형 구역, 그룹 주파수 및 유닛 콜사인에 대한 41개의 선언적 패치 작업.
기존 명명된 미션 엔터티 및 DCS 할당 유닛 이름 채택을 포함한 안정적인 논리적 참조.
미션 설계 지침은 선택적 리소스/프롬프트로만이 아니라 MCP 서버 초기화 지침으로 광고되므로 호환 클라이언트는 계획, 타이밍, 무장 및 AI 정책 기본값을 자동으로 수신합니다.
컴팩트한 의미 스냅샷, 결정적 개정, 낙관적 동시성 및 작업별 사후 조건 검사.
원자적 쓰기 및 프로세스 간 잠금으로 보호되는 미션별 바인딩 및 멱등성 레코드.
절대 요청 만료 및 명시적
OUTCOME_UNKNOWN처리는 늦은 실행과 손실된 응답 후 안전하지 않은 재생을 방지합니다.검증된 패치는 하나의 미션 에디터 콜백에서 전달됩니다. 이후 동사가 실패하면 부분적으로 커밋된 접두사가 기록됩니다.
프리팹 형태의 미션 조각은 기본 ID/이름 할당, 상호 참조 재매핑, 롤백 및 편집기 측 재생 방지를 위한 전용 DCS-SMS 트랜잭션 엔드포인트를 사용합니다.
저장/다시 열기 검증은 안정적인 의미 개정을 기다리고 다른 이름으로 저장 ID 변경 전반에 걸쳐 바인딩을 마이그레이션합니다.
DCS-SMS 생성 차량 경로 및 오래된 미션 에디터 경로 패널 소유권에 대한 수정된 호환성 가드.
임의 Lua MCP 도구 없음.
개정 추적 F10 맵 주석은 모양별 도구를 노출하지 않고 원, 선, 다각형, 텍스트 레이블 및 제거의 검증된 배치를 지원합니다.
데이터 기반 미션 템플릿 카탈로그는 조정 가능한 S-300PS/Buk 사이트 레이아웃과 단계별 AWACS/급유기 레이스트랙을 반환합니다. 두 SAM 패키지는 설치된 DCS 유닛 데이터베이스에 대해 실시간으로 검사됩니다. 이는 정확한 실제 전투 서열이 아닌 기능적이고 대표적인 시작점입니다.
항공모함 패키지 저작은 라이브 슈퍼캐리어 자격, 사용 가능한 무료/유료 선체 및 DCS 자체 활주로 범주 메타데이터에서 항공모함 가능 항공기를 탐지합니다. 하나의 트랜잭션으로 항공모함을 단독으로 또는 대표적인 청/적 호위 대형으로 배치하고, 갑판 위 바람을 계산하고, 지원되는 TACAN/ICLS/Link 4/ACLS 작업을 작성하고, 항공기 시작 및 선택적 복구 웨이포인트를 갑판에 바인딩하고, 명명된 무장 및 전투 소모품을 적용할 수 있습니다.
기본 통신 저작은 그룹 주파수와 정규화된 유닛 콜사인을 기록합니다. 오프라인 검증은 AWACS/급유기 그룹이 주파수를 공유할 때 경고합니다.
캐시된 지형은 명시적 간격 및 장애 지점이 있는 좌표/고도 프로필 및 직선 지형 LOS에 응답할 수 있습니다. 건물과 초목은 해당 모델 외부에 있습니다.
혼합 모드 저작에는 결정적 1024×1440 군사 조명 플레이어 인물 파일과 복사-시-쓰기
.miz외부 콘텐츠 오버레이가 포함됩니다. 인물 파일은 고정된 저장된 미션에서 콜사인, 항공기, 경로, 타이밍, 무전기, 항공모함 보조 장치, 탑재물, 연료, 기관총 및 대응 수단을 읽습니다. 선택적 전술적 산문은 명시적 에이전트 입력으로 유지됩니다. 경로 페이지는 의미 및 F10 오버레이가 비활성화된 깨끗한 캐시 DCS 지형을 사용합니다. 오버레이는 소스 미션을 제자리에서 편집하지 않고 항공기/일반 니보드, 브리핑 텍스트 및 그림, 제한된 이미지/사운드/Lua 리소스를 관리합니다.재개 가능한 타일 캐시는 권위 있는 DCS 고도 및 표면 유형을 추출하고, 경사, 경사면, 거칠기 및 후보 능선/계곡/고개 특징을 파생시키고, 후속 쿼리에 DCS를 요구하지 않고 깨끗한 지형 PNG와 주석이 달린 컨텍스트 PNG를 모두 렌더링합니다.
독립적으로 재개 가능한 수문학 계층은 고도, 경사 또는 의미 영역을 다시 작성하지 않고 기본적으로 50m에서 DCS 표면 유형을 샘플링합니다. 각 샘플을 2비트로 압축하고, 신뢰도가 높은 균일한 육지 및 공해 기본 타일을 건너뛰고, 별도로 보고된 보수적 단거리 간격 연결과 함께 제한된 8방향 연결 강/호수 구성 요소를 도출하며, 검증된 조각에서 전체 데이터 세트 범위로 안정적인 타일 ID로 확장할 수 있습니다.
각 캐시는 DCS 작성 명명된 장소 및 고정 비행장 메타데이터(활주로 임계값/길이, 주기장 범위, 대피소 플래그 및 파생된 계류장 클러스터 포함)를 저장합니다. 장소 레이블은 DCS의 도시 소스가 이름과 좌표를 제공하고 중요도는 제공하지 않으므로 명시적으로 순위가 매겨지지 않습니다.
제한된 앵커 그래프는 인근 비행장과 명명된 장소 사이의 DCS 기본 도로 및 철도 회랑을 캐시하며, 우회, 고도/경사, 끝점 스냅 및 수로 횡단 증거를 포함합니다. 캐시는 완전한 도로 네트워크 내보내기가 아니므로 정확한 끝점에 대해 실시간 라우팅을 계속 사용할 수 있습니다.
대략적인 정착지 영역은 명시적 출처와 권장 이미지 보기 경계가 있는 버퍼링된 명명된 장소 클러스터입니다. 이는 건물 발자국이 아닙니다. 개별 구조는 시각적 지도 검사 작업으로 남아 있습니다.
의미 캐시는 또한 쿼리 가능한 비행장, 정착지 및 명명된 장소 엔터티와 표면, 고도, 경사, 거칠기 및 저세부 증거에서 분류된 연속 지형 영역을 저장합니다. 영역은 컴팩트한 행 실행을 사용하고 래스터 셀이 실제 행정 경계인 것처럼 가장하지 않고 인접성을 기록합니다.
재개 가능한 매크로 전송 그래프는 비행장 및 정착지 허브를 사용합니다. 해당 가장자리는 스냅된 끝점 게이트웨이가 있는 DCS 기본 도로/철도 경로이므로 오프라인 쿼리는 다중 가장자리 지역 경로를 선택할 수 있는 반면 실시간 DCS 라우팅은 정확한 첫/마지막 마일 호송 기하학에 대한 권위자로 유지됩니다.
주문형 맵 검사는 라이브 ME 맵을 요청된 경계에 맞추고, 해당 맵 위젯만 캡처하고, 지리 참조 PNG를 작성하고, 이전 카메라를 복원합니다. 카메라 모션 프레임 검사는 숨겨진 편집기 캡처를 거부합니다(예: 실행 중인 미션의 F10 보기가 실제로 화면에 있는 경우).
전처리는 캐시 모양, 정확한 공유 타일 가장자리 및 라이브 DCS에 대한 16개의 결정적 지점을 자동으로 확인합니다. 동일한 보고서는
validate_map_dataset로 다시 실행하거나 오프라인 전용 QA를 위해 라이브 패리티를 비활성화하여 다시 실행할 수 있습니다.보수적인 저세부 감지는 증거를 기록하고 거의 균일한 육지가 모든 임계값을 통과할 때만 거친 타일을 저장합니다. 일반적인 평평한 지형을 코카서스 가장자리 자리 표시자와 동일시하지 않습니다.
DCS 저장 골든 픽스처, 오프라인 아카이브/Lua/참조 테스트, 복제를 편집하고 원본을 복원하고 파일 해시를 확인하는 격리된 라이브 저작 하네스.
라이브 비행장 계획은 DCS의 항공기 엔벨로프/카테고리 필터와 열린 미션의 예약된 계류장, 미션 지표풍, 활주로 레이블 및 계류장-가능성-임계값 택시 프록시를 사용합니다. 검증된 생성은 1~4대의 항공기에 대해 콜드, 핫 및 런웨이 시작을 지원하며 구성 단계가 실패하면 부분적으로 구축된 그룹을 제거합니다. 활성 활주로 전략은 기본 컴팩트 주차 선택을 검증된 선호 계류장 세트에 재할당할 수 있습니다.
사전 설정 우선 무장 저작은 설치된 DCS 빌드에서 명명된 항공기 사전 설정, 선언된 작업 호환성, 저장고 및 무게를 쿼리합니다. 패치는 하나의 사전 설정을 적용하거나 제한된 파일런별 조정을 수행할 수 있습니다. 게이트웨이는 모델이 CLSID 또는 전체 탑재량을 발명하도록 요청하지 않습니다. 전투 저작은 또한 총기 탄약을 명시적으로 확인합니다. 의도적인 생략이 아닌 한 무장이 0인 전투 항공기에 대해 경고합니다.
라이브 작업 탐지는 기존 그룹에 대해 DCS가 노출하는 웨이포인트 및 경로상 작업만 나열하며, 작업 설명은 패치가 작성되기 전에 기본값, 허용 값 및 누락된 대상 선택기 지침을 제공합니다.
미션 날짜/시간 및 유용한 날씨 필드는 모든 의미 스냅샷에서 읽을 수 있으며 하나의 개정 확인 환경 작업으로 쓸 수 있습니다. 형식화된 웨이포인트 옵션에는 위협에 대한 대응, 교전 규칙, 레이더/ECM 사용, 빙고 귀환, 침묵 및 투하/애프터버너 금지가 포함됩니다.
역할 기반 고정익 프로필과 투명한 시동/택시/상승/이동 추정은 패키지 도착을 동기화하는 데 도움이 됩니다. 오프라인 린트는 AI 요격/차단이 낮거나 느리게 이동을 시작할 때 경고합니다.
오프라인 동작 린트는 무장하지 않은 AI 전투 항공기, 교전 작업이 없는 전투 그룹, 대상 ID가 없는 대상 작업, 해당 동작이 없는 의미 웨이포인트 이름 및 최종 착륙/선회/루프가 없는 항공 경로에 대해 경고합니다. 목표 린트는 또한 둘 다 발사할 수 있는 반대 결과, 생존한 그룹 구성원 한 명이 충족하는 캡처 조건, 인식된 모든 결과 조건에서 누락된 브리핑 명명 그룹 및 비공중 그룹에 할당된 요격 웨이포인트에 대해 경고합니다. 이는 경험적 저작 경고이지 DCS 런타임 AI 정확성에 대한 주장이 아닙니다.
게이트웨이는 선언적 패치에 대해 롤백을 주장하지 않습니다. DCS-SMS 패치 동사는 하나의 ME 콜백에서 순차적으로 실행됩니다. 동사 N이 실패하면 동사 1~N-1이 이미 커밋되었을 수 있습니다. 결과는 커밋된 접두사와 멱등성 키를 기록하여 맹목적인 중복 재시도를 방지합니다. 별도의 apply_mission_fragment 엔드포인트는 기본 DCS-SMS 롤백을 가지며 불완전한 롤백을 명시적으로 보고합니다. 승인된 결과 또는 적용 후 스냅샷이 요청된 결과를 증명할 수 없으면 게이트웨이는 OUTCOME_UNKNOWN을 반환하고 복구 전에 미션 검사가 필요합니다. 실패한 검증이 변경을 취소했다고 가장하지 않습니다. 향후 트랜잭션 패치 동사는 docs/dcs-sms-extension.md에 설명되어 있습니다. 라이브 의미 개정에 창고 내용이 포함되지 않으므로 게이트웨이는 창고 효과가 포함된 조각의 캐시된 재생을 보수적으로 차단합니다. 새 키를 선택하기 전에 미션을 검사하십시오. 도면은 의미 개정 및 저장/다시 열기 검증에 포함됩니다.
개정 및 저장/다시 열기 검증은 프로토콜 0.1 저작 표면(의미 환경, 그룹, 유닛, 경로, 트리거, 영역 및 도면 레코드와 미션 경로 및 전구)을 다룹니다. 브리핑, 창고 및 전역 미션 옵션은 현재 개정 경계 밖에 있습니다.
DCS는 차량 방향을 그룹 수준에서 유지합니다. 따라서 의미 스냅샷은 해당 차량 그룹의 모든 유닛에 대해 선두 차량의 방향을 사용합니다. 선두가 아닌 차량에만 다른 지속 방향을 부여하려고 하면 다시 연 후 자동으로 드리프트하는 대신 사후 조건 검증에 실패합니다.
Related MCP server: DCS Lua Runner MCP Server
요구 사항
Windows 릴리스에는 자체 Node.js 런타임이 포함됩니다. 소스 개발에는 Node.js 20.17 이상이 필요합니다.
Windows, DCS World 및 라이브 편집기 도구용 DCS-SMS ME 모드.
변경을 위해
DCS-SMS -> 외부 실행이 활성화된 상태로 미션 에디터가 열려 있어야 합니다.inspect_map_view는 미션 에디터 맵이 최소화되지 않은 창에 열려 있어야 추가로 필요합니다. DCS는 포커스되지 않거나 가려진 채로 유지될 수 있습니다. 게이트웨이는 응용 프로그램 창을 직접 캡처하고 절대 전경으로 가져오지 않으며 폐색에 민감한 모니터 캡처로 자동 대체하지 않습니다.
지도 추출에는 동봉된 DCS-SMS ME-mod 0.32.4 작업 트리에 입력된 terrain info, terrain sample-grid, terrain list-places, terrain nearest-transport, terrain transport-path, airbase plan-start, airbase create-start 동사가 필요합니다.
Windows 릴리스 설치
릴리스는 하나의 ZIP입니다. 여기에는 게이트웨이, 잠긴 프로덕션 의존성, 휴대용 Node 런타임, 호환되는 DCS-SMS Mission Editor 브리지 소스가 포함됩니다. 별도의 DCS-SMS 설치가 필요하지 않으며 DCS-SMS 미션 훅이나 선택적 LuaSec/OpenSSL 파일을 설치하지 않습니다.
ZIP을 추출하고 DCS를 닫은 다음 실행하세요:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Clients codex지원되는 -Clients 값은 codex, claude-code, claude-desktop, generic입니다. 하나 이상을 전달할 수 있습니다. generic은 휴대용 mcp-config.json을 생성합니다. Codex와 ChatGPT desktop은 Codex의 로컬 MCP 구성을 공유합니다. Claude Code와 Claude Desktop은 별도로 등록됩니다. 다른 클라이언트는 generic 파일의 동일한 stdio 명령과 환경을 사용할 수 있습니다. 웹상의 ChatGPT는 로컬 stdio 서버를 직접 실행할 수 없습니다. 이 패키지는 DCS가 실행되는 머신의 ChatGPT desktop/Codex를 대상으로 합니다.
기본 구성 환경은 현재 OpenAI MCP 문서와 Claude Code MCP 문서를 참조하세요.
설치 프로그램은:
DCS와 Saved Games를 발견하거나
-DcsPath와-SavedGames를 받습니다.DCS에서
Full Screen이 꺼져 있는지 확인하지만 해당 설정은 절대 편집하지 않습니다.DCS가 실행 중일 때 Mission Editor 패치를 거부합니다.
사용자의
MissionEditor.lua와 이전 브리지를 백업합니다.번들된 GPLv3 브리지 소스를 설치하고, 구분된 require 블록만 사용자 편집기 파일에 추가합니다.
사용자가 요청한
dcs-meMCP 항목만 등록하고 해당 항목을 선택된 Saved Games 인스턴스에 고정합니다.
MCP 시작 시 게이트웨이는 GitHub의 최신 안정 릴리스 엔드포인트를 확인하며, 2.5초 제한 시간과 6시간 로컬 캐시를 사용합니다. 더 새로운 시맨틱 버전을 사용할 수 있으면 MCP 지침이 에이전트에게 사용자에게 업데이트 여부를 물어보도록 안내합니다. 확인은 어떤 것도 설치하지 않습니다. 명시적 승인 이후에는 DCS와 게이트웨이를 사용하는 모든 MCP 클라이언트를 닫고 다음을 실행하세요:
powershell -NoProfile -ExecutionPolicy Bypass -File `
"$env:LOCALAPPDATA\DcsMeGateway\update.ps1"업데이터는 변경 전에 다시 확인하고, 버전이 지정된 Windows 릴리스만 다운로드하며, 별도로 게시된 보안 SHA-256을 검증하고, 백업을 보존하는 일반 설치 프로그램을 호출합니다. 자동 확인을 사용하지 않으려면 DCS_ME_GATEWAY_UPDATE_CHECK=0을 설정하세요. check_gateway_update는 요청 시 또는 강제 확인을 수행합니다. 프리릴리스 태그는 이 업데이트 채널에서 의도적으로 제외됩니다.
에이전트 안내 설치의 경우, 추출 폴더를 에이전트에 전달하고 VIBEINSTALL.md를 따르도록 요청하세요. 설치 후 MCP 클라이언트를 다시 시작하고, DCS Mission Editor에서 미션을 열고, DCS-SMS -> External execution을 활성화하세요. 그 토글은 세션 전용입니다.
게이트웨이는 MIT입니다. 번들된 DCS-SMS 브리지는 GPLv3를 유지하며 payload/bridge 아래에 전체 소스와 라이선스가 포함되어 배포됩니다. THIRD_PARTY_NOTICES.md를 참조하세요.
소스에서 설치 및 검증
cd C:\path\to\dcs-me-gateway
npm install
npm test
npm run build
npm run test:golden
npm run test:livetest:golden까지의 모든 것은 완전히 오프라인입니다. DCS는 닫은 상태로 유지해도 됩니다. 저장된 미션을 독립적으로 검증하려면:
npm run validate:miz -- D:\Missions\mission.miz검증기는 ZIP 무결성 및 압축 풀기 제한, 필수 항목, 리터럴 Lua 구문, 미션 구조, ID/이름, 경로, 좌표, 엔터티 참조, 사전 키, 패키지 테스트 리스를 확인합니다. 미션 코드를 로드하거나 실행하지 않고 Lua를 데이터로 구문 분석합니다.
선언적 패치와 그 직전/직후에 저장된 파일이 주어지면 다음을 통해 집중된 승인 보고서를 생성합니다:
npm run report:patch -- patch.json before.miz after.miz [bindings-before.json] [bindings-after.json]
npm run docs:render -- --mission <saved.miz> --dataset <dataset-id> --output <new-directory>보고서에는 직접 패치 대상, 한 홉 종속성 컨텍스트, 작업 사후 조건, 도입되거나 해결된 검증 결과 및 해당 범위를 벗어난 변경된 엔터티가 포함됩니다. after-file이 유효하지 않거나, 사후 조건이 실패했거나, 의도하지 않게 종속성이 변경되었거나, 관계없는 미션 메타데이터/옵션/창고가 변경되었거나, 범위 밖의 엔터티가 변경되었다면 보고서는 0이 아닌 종료 코드를 반환합니다. 이전에 생성된 논리적 ID를 참조하는 패치는 해당 {"entities": ...} 바인딩 객체를 제공해야 하며(이전 및 할당 변경 시 이후), 해결할 수 없는 ID는 명시적으로 보고되고 승인을 받지 않습니다.
test:live는 편집기 세션만 읽습니다. 라이브, 읽기 전용 미션 스냅샷을 위해 -- --snapshot을 추가하세요.
npm run test:live-authoring은 의도적으로 변경을 수행합니다. Mission Editor에 이미 열린 저장된 미션이 필요합니다. 하네스는 먼저 Save-As로 해당 미션을 .artifacts/live에 복제하고, 복제본만 편집한 다음 별개성, 개정 충돌, 경로 편집, 구역, 저장/재사용 안정성을 확인하고, 그런 다음 원본을 다시 열어 해당 원본의 SHA-256이 변경되지 않았는지 검증합니다. 미션을 실행하거나 비행하지 않습니다.
stdio로 MCP 서버를 시작하세요:
node C:\path\to\dcs-me-gateway\build\index.jsMCP 호스트는 해당 명령과 경로를 dcs-me라는 stdio 서버로 구성해야 합니다. 진단은 stderr로 전달되고 stdout은 MCP 프레임 전용입니다.
구성
환경 변수 | 기본값 | 의미 |
| 자동 감지 | 명시적 DCS Saved Games 인스턴스 루트 |
| 자동 감지 | 호환되는 DCS-SMS 재정의; 허용됨 |
|
| 바인딩 및 멱등성 상태 |
|
| 지속 테마 타일 데이터셋 및 미리보기 |
| 패키지에 포함된 | 번들된 맵팩 레지스트리 및 원격 레지스트리 포인터 |
| 레지스트리 포인터 또는 없음 | 명시적 HTTPS 맵팩 레지스트리라는 오버라이드 |
|
| live-smoke 기본 제한 시간 |
|
| 요청함 폴링 간격 |
|
| 로컬호스트 전용 시맨틱 맵 뷰어 포트 |
오버라이드가 없으면 게이트웨이는 DCS-SMS의 saved_games 구성 값을 읽은 다음 가장 최근 ME 하트비트를 보여주는 DCS, DCS.openbeta 또는 DCS.server 인스턴스를 선택합니다. Windows Saved Games가 이동되고 DCS-SMS가 해당 경로를 구성에 기록하지 않은 경우 DCS_SMS_SAVED_GAMES를 설정하세요.
MCP 도구
Tool | Mutation | Purpose |
| 예 | 의미론적 안정성 장벽이 있는 새로 만들기/열기 수명 주기 |
| 아니요 | 권한, 수명 주기, 하트비트, 대기열 상태 |
| 아니요 | 기능, 유형화된 AI 옵션, 비행 프로파일, 실시간 공군 기지, 항모 자격/선체/항공기, 트리거 조건자 |
| 아니요 | 역할 기반 고도/속도/옵션 기본값 및 투명한 도착 예상 |
| 아니요 | 조정 가능한 SAM, 준비된 지점 SAM/AAA, AWACS, 공중급유기 작성 계획 나열/해석 |
| 아니요 | 실시간 DCS 작성 사전 설정, 임무 호환성, 무장, 중량, 선택적 스테이션 세부 정보 |
| 아니요 | 기존 그룹에 허용된 실시간 웨이포인트/경로상 임무 |
| 아니요 | 단일 임무에 대한 실시간 필드, 기본값, 허용 값, 대상 선택기 안내 |
| 아니요 | 정규화된 임무 상태 및 리비전 |
| 아니요 | 오프라인 구조, 참조, AI 동작, 목표 의미론 검증 |
| 아니요 | 선언된 패치에 대한 집중된 전/후 |
| 아니요 | 패치 컴파일 및 사전 점검 |
| 예 | 원틱, 리비전 확인, 멱등 배치 |
| 예 | 롤백이 포함된 네이티브 DCS-SMS 트랜잭션; 불확실한 사후 조건은 검사 필요 |
| 예 | 자격 인식 청/적 항모/호위 템플릿, WOD, 무전기/비콘, 갑판 연동 항공기, 사전 설정 무장 |
| 예 | 리비전 추적 대량 F10 원, 선, 다각형, 레이블, 제거 |
| 새 파일 | SHA 고정 copy-on-write 니보드, 브리핑 텍스트/사진, 유형화된 외부 리소스; DCS는 종료되어도 됨 |
| 새 파일 | 명시적 사용자 동의 하에 고정 MIST/Skynet 런타임과 검증된 접두사 IADS 구성을 포함; DCS는 종료되어도 됨 |
| 아니요 | 브리핑 텍스트/사진, 니보드, 지도 리소스, 아카이브 존재, 임무 참조 횟수를 오프라인으로 해석 |
| 새 미리보기 | 결정적 항공기별 임무 카드, 통신/무장, 웨이포인트, 깔끔한 경로 지도 PNG 페이지 |
| 예 | 다른 이름으로 저장, 다시 열기, 의미론적 diff |
| 아니요 | 영구 지형 캐시 나열; 완전 오프라인 |
| 다운로드/캐시 쓰기 | 필수 전구 확인: 로컬 재사용, 호스팅된 팩 가져오기 및 검증, 또는 로컬 빌드 전 명시적 권한 게이트 반환 |
| 캐시 쓰기 | 제한적/재개 가능한 실시간 DCS 지형 추출 및 파생물 생성 |
| 캐시 쓰기 | 별도의 재개 가능한 고해상도 강/호수 표면 마스크; 균일한 저상세 육지와 공해는 건너뜀 |
| 미리보기 전용 | 오프라인 지형, 공군 기지, 명명된 장소, 특징 후보, 주석이 달린 PNG 컨텍스트 |
| 임시 카메라 | 카메라 복원 및 가시성 증명이 포함된 보이는 실시간 ME 지도의 지리참조 온디맨드 PNG |
| 대개 아니요 | 삼중 상태 캐시 지형 LOS; 더 정밀한 데이터가 필요할 때만 |
| 보고서 전용 | 타일/이음새 검증 및 선택적 결정적 실시간 DCS 포인트 일치 |
| 아니요 | 오프라인 활주로, 계류장, 격납고, 크기 밴드, 에이프런 컨텍스트 |
| 미리보기 전용 | 오프라인 샘플링된 도로/철도 회랑, 교차 후보, 정착지 지역, 이미지 뷰 안내 |
| 아니요 | 정밀한 실시간 도로 경로 또는 보수적으로 검증된 DCS 철도 후보 |
| 아니요 | DCS 네이티브 호환성/점유 및 바람/활주로/유도로/이륙 계획 |
| 예 | 리비전 확인, 멱등, 검증된 컴팩트 또는 활성 활주로 주기/활주로 그룹 생성 |
맵 팩 수명 주기
지도별 임무 계획 전에, 임무 에이전트는 해당 전구에 대해 ensure_map_dataset을 호출하도록 지시받습니다. 이 도구는 먼저 완전한 로컬 데이터셋을 재사용한 다음, 패키지된 레지스트리와 선택적 GitHub 호스팅 원격 레지스트리를 확인합니다. 다운로드는 스트리밍되며, 등록된 바이트 수로 제한되고, 등록된 SHA-256과 대조 확인되며, 안전하게 추출되고, 데이터셋/전구 정체성과 완전성에 대해 검증된 후 원자적으로 게시됩니다. maps/registry.json의 패키지 레지스트리는 또한 표준 원격 레지스트리입니다. 대용량 데이터셋은 불변이며 SHA-256으로 고정된 GitHub 릴리스 자산입니다. 원시 캐시와 생성된 아카이브는 Git에 커밋되지 않습니다.
등록된 팩이 없으면 도구는 DCS를 열거나 스스로 몇 시간에 걸친 추출을 시작하는 대신 permission_required를 반환합니다. 사용자가 승인한 후에만 에이전트는 allow_local_build=true로 호출을 반복할 수 있습니다. 요청된 전구가 설치되어 있어야 하며 외부 실행이 활성화된 Mission Editor에서 열려 있어야 합니다. 빌드는 재개 가능하며 여러 번의 호출이 필요할 수 있습니다.
개발자는 호스팅되지 않은 전구를 명시적으로 빌드하고 패키징할 수 있습니다:
npm run maps:settlements
npm run maps:build -- --theatre Caucasus
npm run maps:package -- --dataset caucasus-full-v01-250m `
--base-url https://github.com/ALasek/DCS-ME-gateway/releases/download/maps-v0.9.0maps:settlements는 현재 Mission Editor에서 열려 있는 전구에 대한 빠르고 독립적인 검토 패스입니다. DCS의 권위 있는 좌표 변환을 통해 일치하는 큐레이션된 카탈로그를 해석하고, DCS 네이티브 마을 레이블을 병합하며, .artifacts/settlements 아래에 JSON과 레이블이 지정된 PNG를 작성합니다. 지형, 고도, 토지 피복, 수문, 교통 또는 공군 기지 데이터를 샘플링하거나 재구축하지 않습니다. --output <directory>를 사용하여 안정적인 출력 위치를 선택하십시오.
패키징 명령은 아카이브 크기와 SHA-256을 포함한 정확한 레지스트리 항목을 출력합니다. 해당 항목을 maps/registry.json에 추가하고 .tgz를 일치하는 릴리스에 업로드하십시오. 로컬 빌드는 프로젝트 작성자가 소유하지 않은 지도에 대한 폴백이며, 결코 암묵적 동의가 아닙니다.
preprocess_map_region은 요청된 사각형을 DCS의 권위 있는 전구 경계와 대조 검증합니다. DCS의 4,096 제한은 데이터셋 타일이 아니라 각 지형 그리드 요청의 샘플에 적용됩니다. max_tiles는 의도적인 데이터셋 크기 가드일 뿐입니다(기본값 50,000). tile_batch_limit은 각 MCP 호출을 기본적으로 누락된 타일 200개로 제한합니다. 결과에 complete=false가 있으면 동일한 데이터셋 지오메트리와 샘플링 설정으로 호출을 반복하십시오. 각 타일과 매니페스트 업데이트는 이미 지속적이며, 불완전한 데이터셋은 일반 쿼리를 거부하고, 최종 검증은 읽을 수 없거나, 잘못된 형식이거나, 이음새가 유효하지 않은 타일을 제거하여 다음 배치에서 자동 복구할 수 있습니다. 배치 크기와 안전 가드 변경은 자동 생성된 데이터셋 ID를 변경하지 않습니다.
그 north/east 좌표는 임무 객체가 사용하는 동일한 전구 로컬 미터입니다. 기본 보수적 사전 패스는 낮은 해상도에서 높은 신뢰도의 균일한 바다 또는 플레이스홀더와 유사한 균일한 육지를 유지할 수 있습니다. 이러한 모든 결정은 매니페스트와 쿼리 결과에 표시됩니다. 모든 임계값을 충족하지 않는 해안선, 혼합 표면, 평평한 지형은 전체 해상도로 유지됩니다. 공군 기지와 DCS 작성 장소 레이블은 지형 타일 옆에 캐시되고 미리보기에 주석으로 표시됩니다. 장소 레코드는 DCS 소스가 해당 구분을 노출하지 않으므로 도시/읍/마을로 분류되지 않습니다. 의미론적 출처는 DCS 빌드, 로케일, 전구 마을 소스를 기록합니다. 장소 ID는 좌표에서 파생되는데, DCS가 일부 전구 데이터셋을 로드할 때 중복 Lua 키가 덮어써지기 때문입니다. 변경된 DCS 지형 빌드는 오래된 타일을 조용히 재사용하는 대신 명시적 force=true 재빌드가 필요합니다.
query_map_context, query_airbase_context, query_transport_context는 캐시만 읽으므로 DCS는 종료되어도 됩니다. 200m 에이프런 클러스터링과 컴팩트/표준/대형 엔벨로프 밴드는 내비게이션 휴리스틱이지 DCS 호환성 주장이 아닙니다. plan_airbase_start는 변형 전에 항상 요청된 항공기와 현재 점유 상태를 DCS를 통해 다시 확인합니다.
render_mission_documents는 동일한 저장된 미션, 지형 캐시, 스타일 버전, 제공된 산문에 대해 결정론적입니다. 기본적으로 Player/Client 비행편을 선택합니다. kneeboard_images 항목의 매니페스트를 생성하고 미션을 수정하지 않습니다. DCS kneeboard 폴더는 모든 항공기 유형 또는 단일 항공기 유형을 대상으로 할 수 있지만, 동일한 유형을 사용하는 두 비행편을 구분할 수 없으므로 해당 지시사항을 결합하거나 비행편별 분리가 필요할 때 브리핑 페이지를 사용하십시오. 미션 카드는 항공기 유형을 식별하지만 비행편별 수량을 암시하지 않습니다. 통신/무장 페이지는 표준 사람이 읽을 수 있는 명칭, 파운드 단위 연료, 백분율로 표시된 총기 탄약을 사용하며 내부 CLSID를 표시하지 않습니다. 저장된 미션에 읽을 수 있는 이름이 없는 무장이 있으면 get_aircraft_loadouts를 include_stations=true로 호출하고 DCS에서 작성된 명칭을 flight_notes.loadout_summary에 전달하십시오. 그러면 렌더링 시 해당 명칭이 제공될 때까지 명시적 경고를 출력합니다. 웨이포인트 표는 검증된 저장된 경로의 ETA 값을 사용하며, 경로가 실제로 예약된 경우에만 해당합니다. 상태 기반 또는 플레이어 중심 이벤트는 flight_notes.waypoint_notes[].time_label을 대신 사용하여 고정 시계 시간을 만들지 않고 단서와 타이밍 창을 제공할 수 있습니다. 렌더링은 다중 웨이포인트 플레이어 경로에 유용한 ETA 값이나 시간 레이블이 모두 없으면 경고합니다. 경로 지도는 소수의 비행장 및 주요 정착지 레이블만 추가하며, 경로 및 웨이포인트 레이블은 충돌 및 시각적 우선순위를 유지합니다. 모든 페이지를 삽입하기 전에 미리보기하십시오.
apply_miz_overlay는 의도적으로 일반적인 미션 테이블 편집기가 아닙니다. 라이브 ME 미션을 저장하고, 다른 파일을 열거나 닫은 다음, 기존 외부 콘텐츠를 검사하고, 해당 소스 파일의 보고된 SHA-256을 고정한 후 새 출력 경로에 작성하십시오. 이 도구는 실제 이미지/사운드/스크립트 서명을 검증하고, 참조된 리소스 삭제를 거부하며, 미션 참조가 남아 있지 않을 때만 교체된 브리핑 사진을 정리합니다. 오버레이가 성공한 후 ME에서 출력을 열고 save_and_verify를 실행하십시오. 핵심 그룹, 경로, 트리거 및 목표는 ME에서 작성된 상태로 유지됩니다. 이는 두 작성자가 동일한 .miz에서 조용히 분기되는 것을 방지합니다.
선택적 Skynet-IADS
의미 있는 다중 사이트/EWR 네트워크, SEAD/DEAD 시나리오 또는 레이더 방사 균형에 의존하는 임무의 경우, 에이전트는 Skynet을 한 번 권장하고 사용자가 런타임 스크립트 종속 동작을 수락하는지 물어볼 수 있습니다. 모든 고립된 SAM 설계에 그 질문을 중단하고 반복해서는 안 됩니다. 기본 DCS 경보 상태 및 결정론적 방사 트리거는 고립되고 예측 가능한 위협에 대한 기본값으로 유지됩니다.
수락 후, 관리되는 SAM 그룹 이름에 공통 접두사를 하나 부여하고 관리되는 EWR 유닛 이름에 고유한 접두사를 부여한 다음 미션을 저장하고 저장된 파일의 SHA-256과 새 출력 경로로 setup_iads를 호출하십시오. 이 도구는 Skynet-IADS 3.3.0과 상위 호환 테스트된 MIST 4.5.107을 검증하고 삽입한 다음, 해당 순서로 MIST, Skynet 및 생성된 구성을 로드하는 Mission Start 트리거 하나를 추가합니다. 결과 .miz는 자체 포함되며 플레이어는 아무것도 설치할 필요가 없습니다. Mission Editor에서 출력을 열고 계속하기 전에 save_and_verify를 실행하십시오.
설정은 스크립트 해시, 로드 순서, 연합군 구성원 자격, 접두사 및 명명된 지휘 센터를 검증합니다. 미션을 실행하지 않고는 런타임 IADS 동작을 증명할 수 없습니다. 관리되는 SAM 그룹당 하나의 SAM 시스템 유형, 관리되는 EWR 그룹당 하나의 EWR 레이더를 유지하고 동일한 레이더에 대해 기본 방사 동작을 추가하지 마십시오. 출처, 정확한 라이선스 및 해시는 vendor/skynet-iads/3.3.0 및 THIRD_PARTY_NOTICES.md에 기록되어 있습니다.
analyze_terrain_line은 각 샘플을 포함하는 가장 미세한 캐시된 그리드를 쌍선형 보간하고 clear, blocked 또는 indeterminate를 보고합니다. 분류기는 명시적 고도 해상도 범위를 사용합니다. clear와 blocked는 시야선의 한쪽에 전체 범위가 유지되어야 합니다. 캐시 전용 모드는 DCS에 접촉하지 않고 불확실한 회랑과 권장 간격을 보고합니다. refinement_mode=auto-live는 일치하는 열린 Mission Editor 극장에서 해당 경계 회랑을 샘플링하고, 호출당 샘플 한도에 따라 분할하며, 더 미세한 타일을 데이터세트 아래에 유지하고 즉시 LOS를 다시 실행합니다. 이후 쿼리는 DCS가 닫혀 있어도 해당 타일을 재사용합니다. 미세 재실행은 불확정 상태로 남을 수 있습니다. 응답은 해상도 한계와 가능한 더 작은 다음 간격을 보고하며 명확하거나 차단된 답변을 날조하지 않습니다. 이는 레이더/SAM 배치 및 경로 스크리닝에 적합하지만, 나무나 건물이 중요한 최종 가시성 주장에는 적합하지 않습니다.
지형 타일이 완료된 후, 의미론적 전처리는 2km 분류 래스터를 도출하고, 고립된 비수역 셀을 평활화하며, 각 4-connected 구성 요소를 통계, 인접성 및 행-런 기하학을 포함하는 컴팩트한 지형 영역으로 변환합니다. 비행장과 정착지 클러스터는 그래프 허브가 됩니다. 도로 후보는 80km 이내의 최대 4개 이웃을 포함하며 연결성 복구가 제한됩니다. 철도 후보는 120km 이내의 최대 2개 이웃을 포함합니다. DCS 철도 라우팅은 지형 네트워크 선택기가 관련 없는 선형 피처를 반환할 수 있으므로 후보 증거로 취급됩니다. 캐시된 철도 회랑은 두 앵커의 1.5km 이내에 맞닿아야 하고 라우팅된 길이는 직접 분리의 절반 이상을覆盖해야 합니다. 더 약한 결과는 에이전트에 철도로 노출되지 않고 검사를 위해 실패한 후보로 남습니다. transport_batch_limit는 호출당 라이브 DCS 경로 추출을 제한하며, 보류/완료/실패 가장자리 상태는 지속적이고 재개 가능합니다. 완료된 폴리라인은 허브 ID와 스냅된 게이트웨이 점을 유지합니다. query_transport_context는 완료된 캐시된 가장자리에 대해 Dijkstra를 사용하여 오프라인 명명된 허브 경로를 제공합니다. route_ground_transport는 동일한 보수적 철도 검사를 현재 DCS 경로에 적용합니다. 수면 횡단은 water-crossing-candidate로 표시되며 파괴 가능한 교량 객체로 단언되지 않습니다. 정착지 클러스터링은 의도적으로 지형 버전에 민감하고 불필요하게 큰 건물별 카탈로그를 피합니다.
페르시아만 처리기는 DCS 자체의 마을 레이블을 maps/settlements/persian-gulf.json의 희소한 편집 가능한 카탈로그로 보완합니다. 이 카탈로그는 대략 1980-1990년 시나리오 어휘를 위해 선택된 주요 도시, 항구 및 섬 정착지를 포함하며 역사적 도시 발자국이 아닙니다. 전처리 중 DCS는 각 WGS84 점을 로드된 극장의 로컬 좌표로 변환합니다. 일치하는 인근 DCS 레이블은 큐레이션된 이름, 별칭, 유형 및 중요도를 얻으면서 DCS 위치를 유지합니다. 독립형 큐레이션 점은 지역 의미론적 증거로만 남습니다. 카탈로그 SHA-256 및 소스/시대 출처는 semantics.json에 저장되므로 카탈로그를 편집하면 고도 타일을 재구축하지 않고 캐시된 정착지 및 운송 의미론이 무효화되고 재구축됩니다. maps/settlements/README.md는 의도적으로 단순한 정리 형식을 설명합니다.
query_map_context는 범위, semantic_search 또는 둘 다로 호출할 수 있습니다. 의미론적 검색은 지형 클래스를 필터링하고, 최소 영역, 엔티티 근접성, 엔티티 종류/이름 및 대략적인 도로 접근성을 제공하며 지형 타일을 로드하거나 DCS를 요구하지 않습니다. inspect_map_view는 보완적인 세부 경로입니다. 모든 건물이나 도로 표시를 캐시하지 않고 요청된 축척으로 현재 ME 렌더링을 반환하며 아핀 픽셀-극장 변환을 제공합니다. ME 맵 카메라를 일시적으로 작성하고 다른 게이트웨이 변형에 대해 직렬화하며 캡처 또는 가시성 검증이 실패해도 이전 카메라를 복원합니다. 정확한 DCS 창 핸들을 확인하고 DCS가 최소화되거나 독점 전체 화면 Alt-Tab으로 캡처 가능한 표면이 제거된 경우 창 기하학 및 복구 세부 정보와 함께 실패합니다. 테두리 없는/창 모드 DCS는 검사 중 MCP 클라이언트 뒤에 남아 있을 수 있습니다.
비행장, 정착지 클러스터 및 원시 DCS 장소가 이름을 공유하는 경우 반환된 엔티티 ID 또는 kind:name 선택기(예: settlement:Batumi 또는 airbase:Batumi)를 사용하십시오. 모호한 bare 이름은 하나를 조용히 선택하는 대신 실패합니다.
개발 중에는 npm run viewer로 로컬 계층형 캐시 뷰어를 실행하고 npm run build 후에는 npm run viewer:start로 실행한 다음 http://127.0.0.1:4317을 여십시오. DCS에 접촉하지 않고 깨끗한 캐시된 지형, 연속 지형 영역, 사용 가능 및 실패한 운송 가장자리, 정착지 외곽선, 의미론적 엔티티 및 레이블을 시각화합니다.
validate_map_dataset는 타일 가독성과 배열 검사를 스트리밍하고 인접한 공유 가장자리만 비교하며 전체 맵을 메모리에 구체화하지 않습니다. 기본 direct_samples=16은 균등하게 분포된 캐시된 점을 현재 로드된 DCS 극장과 비교합니다. 오프라인 전용 검사에는 direct_samples=0을 사용하십시오. 보고서는 데이터세트 디렉터리 아래에 validation.json으로도 저장됩니다. 완료된 데이터세트 개요도 한 번에 하나의 타일씩 경계 출력 래스터로 그려집니다.
경계가 있는 코카서스 개발 하네스는 의도적으로 맵의 평평한 외곽 지역 대신 상세한 바투미-코불레티 해안-산악 스트립을 샘플링합니다:
npm run test:live-mapnorth=-370000..-330000, east=610000..670000을 250m 간격으로 샘플링하고 모든 타일 후 진행 상황을 유지하며 다시 실행해도 안전합니다. 이미 캐시된 타일을 의도적으로 새로 고치려는 경우에만 -- --force를 추가하십시오. 전체 맵을 처리하지 않습니다.
수문학 정제
250m 지형 캐시는 의도적으로 권위 있는 하천 지오메트리로 취급되지 않습니다. 좁은 하천은 그리드 점 사이에 떨어져 희박한 파란색 점으로 나타날 수 있습니다. preprocess_hydrology_layer는 기존 완료 데이터세트에 별도의 hydrology/ 캐시를 연결합니다. 기본 50m 그리드는 샘플당 컴팩트한 2비트 표면 코드만 저장합니다. 고도 및 지형 미분은 기본 해상도를 유지합니다. 균일한 placeholder 육지 또는 열린 바다로 입증된 기본 타일은 계획에서 생략되고 상세 및 혼합 해안 타일은 샘플링됩니다.
대표적인 범위로 시작하고 completeForBounds=true가 될 때까지 동일한 호출을 반복하십시오. 이후 bounds를 생략하여 모든 상세 기본 타일에 동일한 레이어를 확장하십시오. tile_batch_limit는 각 호출을 제한하고 max_tiles는 의도적인 안전 상한일 뿐입니다. 변경된 간격, 타일 크기, 극장 또는 DCS 지형 서명은 fail closed됩니다. force=true는 의도적으로 새 수문학 새로 고침을 시작하며 이후 재개 가능한 호출은 force=false를 사용합니다. query_map_context는 레이어가 존재할 때 coverage, 정확한 경계 표면 수, 결정론적 스티치 메트릭 및 샘플링된 8-connected 하천/호수 구성 요소를 반환합니다. 미리보기 및 깨끗한 문서 맵은 더 미세한 수역 마스크를 통합합니다.
원본 DCS 코드와 표면 개수는 불변의 증거로 남습니다. 오프라인 방향성 스티처는 양쪽 끝의 소스 샘플이 동일한 선을 따라 계속될 때 최대 두 개의 누락 셀을 채울 수 있습니다. 추론된 셀은 별도로 보고되며 구성 요소 연속성과 렌더링에만 사용됩니다. 이는 가까운 무관한 수로를 병합할 수 있는 제한 없는 형태학적 폐쇄보다 의도적으로 더 보수적입니다. 구성 요소 지오메트리는 은행 폴리곤도 아니고 항법 보장도 아닙니다. 선택한 간격보다 좁은 강은 여전히 조각화될 수 있으므로 정확한 은행 배치가 중요한 경우 더 조밀한 경계 패스 또는 실시간 지도 검사를 사용하십시오. 고신뢰도 조잡한 플레이스홀더 육지와 균일한 바다 베이스 타일은 설계상 수문학 적용 범위 밖입니다. 이 최적화는 기본 저해상도 보정이 이미 지도의 비임무 지형을 실제 상세 평원과 분리했다고 가정합니다. 뷰어는 생성된 레이어를 별도로 토글 가능한 Rivers / lakes 오버레이로 노출합니다. 프레젠테이션은 증거가 아닌 파생입니다. 호수는 평활화된 샘플 영역 래스터를 유지하고, 강 밴드는 결정적으로 얇아지고, 보수적으로 간격이 연결되고, 단순화되며, 고정된 화면 공간 너비의 앤티앨리어싱 SVG 중심선으로 그려집니다. 쿼리와 검증은 계속해서 원래 패킹된 셀과 별도로 식별된 스티치 포인트를 사용합니다.
전체 패치 스키마는 MCP 리소스 dcs-me://schema/mission-patch/0.1로도 노출됩니다. examples/f16-rwr-patch.json 및 그 후속 examples/f16-rwr-route-patch.json을 참조하십시오.
전체 미션 작성은 MCP 프롬프트 design_dcs_mission으로 시작해야 합니다. 이는 일회성 사양을 요구하는 것이 아니라 대화를 안내합니다. 에이전트는 영향력이 큰 질문을 하고, 기본값을 권장하고, 대안을 제안하고, 살아있는 플레이어 역할, 결과, 단계, 그룹별 목적, 인과적 상호작용, 능력/탑재량, 균형 기록을 유지할 수 있습니다. 표준 사람이 읽을 수 있는 지침은 docs/design-dcs-mission.md입니다. 서버는 초기화 지침, MCP 프롬프트, 안내 리소스에 동일한 파일을 로드합니다. 승인된 슬라이스가 작성되고 테스트되는 동안 일관된 백본과 첫 번째 슬라이스가 변경보다 먼저 수행되지만, 이후 세부 사항은 열려 있을 수 있습니다. 동일한 지침은 읽기 전용 리소스 dcs-me://guidance/mission-design/0.1로 제공됩니다. 미션 개념은 사용자와 함께 개발되고 Mission Editor 바인딩 장벽을 존중하기 위해 점진적으로 구현됩니다.
전체 프래그먼트 스키마는 dcs-me://schema/mission-fragment/0.1에 노출됩니다. 이는 DCS-SMS 프리팹이 사용하는 데이터 모델(meta, groups, statics, zones, drawings, triggers)과 명시적 배치 정책을 수용합니다. 엔드포인트는 Mission Editor 내부에서 사전 점검과 변경을 수행하므로 호출하려면 DCS가 필요합니다. 리포지토리 테스트 스위트를 개발하고 실행하는 데는 DCS가 필요하지 않습니다.
고수준 항공모함 요청 스키마는 dcs-me://schema/carrier-package/0.1에 노출됩니다. 먼저 kind=carrier_capabilities로 get_catalog를 쿼리하여 열린 DCS 설치의 선체, 자격, 항공모함 호환 항공기, 호위 유형을 검사하십시오. dry_run=true는 미션을 변경하지 않고 컴파일된 프래그먼트와 해결된 갑판 풍속 계획을 반환합니다. 자동 모듈 선택은 DCS가 Supercarrier 설치 및 인증을 보고하면 Supercarrier를 선호하고, 그렇지 않으면 연합의 무료 항공모함을 선택합니다.
고수준 공군기지 요청 스키마는 dcs-me://schema/airbase-start/0.1에 노출됩니다. create_airbase_start는 열린 Mission Editor를 요구하고, 요청된 의미론적 개정판과 멱등성 키를 확인하고, 사용 가능한 호환 스탠드를 사전 점검하고, 네이티브 DCS-SMS 구성 동사를 호출한 다음, 새 스냅샷에서 그룹 크기, 항공기 유형, 웨이포인트 0 비행장 연결, 이륙 모드, 명시적 주차 ID를 검증합니다. 기본 active_runway 주차 전략은 지표풍과 활주로 지정자를 사용하여 직선 임계 거리로 사용 가능한 호환 스탠드를 순위화한 다음 재할당을 검증합니다. compact는 DCS-SMS의 원래 인접 그룹 선택을 유지합니다. 그 거리는 택시 프록시이지 경로 시간 보장이 아닙니다. 고정 육상 비행장은 이 엔드포인트를 사용합니다. 항공모함 갑판 슬롯은 setup_carrier_package를 사용합니다. FARP는 별도의 향후 표면으로 남아 있습니다.
트리거 필드 값은 "$ref:<logical_id>"로 이전 논리 엔티티를 참조할 수 있습니다. 컴파일러는 이를 안정적인 DCS 이름으로 대체합니다. 명명된 Triggered Action에 대한 참조는 트리거 액션이 추가되기 직전에 DCS의 현재 {groupId, taskNumber} 튜플로 해석됩니다. 스냅샷의 경로 점 index 값과 모든 패치 waypoint_index는 0부터 시작합니다. 트리거 규칙 인덱스와 Triggered Action 슬롯은 1부터 시작합니다.
지원되는 작업은 다음과 같습니다.
기존 엔티티: 정확한 그룹, 유닛, 트리거 또는 존 이름에 대한
adopt_entity.그룹:
create_group,set_group_task,set_group_late_activation,remove_group. 이후 패치가 첫 번째 유닛을 처리해야 하는 경우create_group에lead_logical_id를 설정하십시오. 게이트웨이는 DCS가 반환한 이름을 바인딩합니다.유닛:
add_unit,set_unit_skill,set_unit_heading,set_unit_loadout,set_unit_payload,clear_unit_payload,remove_unit. 탑재량 소모품:set_unit_fuel,set_unit_chaff,set_unit_flare,set_unit_gun.경로:
add_waypoint,insert_waypoint,remove_waypoint,link_waypoint_airbase.웨이포인트 동작:
add_waypoint_task,add_waypoint_enroute_task,remove_waypoint_task,remove_waypoint_enroute_task,clear_waypoint_tasks,clear_waypoint_enroute_tasks, 그리고 타입화된set_waypoint_option작업. 작업fields는targetTypes: ["Air"]와 같은 선택기를 포함하여 중첩된 JSON 유사 배열과 레코드를 허용합니다.그룹 Triggered Actions:
add_triggered_task,replace_triggered_task,remove_triggered_task. 이들은 안정적인 이름으로 작업/경로 중 작업 항목을 작성합니다.a_ai_task또는a_set_ai_task트리거 액션 필드에 작업 논리 ID를 사용하십시오. 작업을 제거하기 전에 참조하는 트리거 액션을 제거하십시오.환경: 날짜/시간, 온도, QNH, 가시성, 난기류, 3개 고도의 바람, 구름, 먼지에 대한
set_mission_environment.트리거:
create_trigger,add_trigger_condition,add_trigger_action,remove_trigger_condition,remove_trigger_action,remove_trigger.존:
create_zone_circle,remove_zone.
동일한 패치에서 생성된 그룹의 경로 편집은 Mission Editor가 경로 상태 구성을 완료할 수 있도록 후속 패치가 필요합니다. add_unit으로 생성된 유닛 또는 create_group.lead_logical_id를 통해 선언된 리드를 편집하거나 제거하는 것도 DCS가 작업 결과에서 최종 유닛 이름을 할당하므로 후속 패치가 필요합니다. 검증은 변경이 전달되기 전에 이를 명시적 장벽 오류로 보고합니다.
프리셋 우선 항공기 워크플로
무장 항공기의 경우 aircraft_type 및 intended_task로 get_aircraft_loadouts를 호출하십시오. 해당 작업과의 호환성을 선언하는 DCS 작성 프리셋을 선호하십시오. 여러 개가 일치하면 미션과 예상 범위에 맞는 저장소를 가진 적절하고 명확하게 명명된 프리셋을 선택하십시오. 조정 전에 선택한 프리셋에 대해 include_stations=true를 요청하십시오. set_unit_loadout으로 적용한 다음 프리셋이 충족하지 못하는 명시적 요구 사항에 대해서만 set_unit_payload 또는 clear_unit_payload를 사용하십시오. DCS 명명 프리셋은 파일런만 변경합니다. 유닛의 상속된 연료/채프/플레어/건 값을 반환된 기체 최대값 및 대응책 기본값과 비교한 다음 부적절한 값을 명시적으로 설정하십시오. 저장소별 퓨즈/프로그램 설정은 아직 게이트웨이의 제한된 패치 스키마에 포함되지 않습니다.
탑재량 열거는 DCS Mission Editor me_loadoututils에 대한 게이트웨이 소유의 읽기 전용 어댑터이지 공식 DCS-SMS 동사가 아닙니다. 따라서 버전에 민감하고, Mission Editor API가 변경되면 폐쇄적으로 실패하며, 안정적인 Eagle Dynamics 인터페이스로 주장되지 않고 로컬에 설치된 DCS 빌드에 대해 검증되었습니다.
AI 동작의 경우 먼저 실제 그룹과 작업 종류에 대해 get_ai_task_catalog를 호출한 다음 describe_ai_task를 호출하십시오. EngageGroup/AttackGroup은 숫자 groupId가 필요합니다. 유닛 변형은 unitId가 필요합니다. EngageTargetsInZone은 극장 로컬 x(북쪽) 및 y(동쪽)가 필요합니다. 현재 의미론적 스냅샷의 ID를 사용하십시오. 작업 이름만으로는 유효한 대상 할당이 되지 않습니다.
안전 경계
기본 DCS-SMS 브리지는 전체 Mission Editor 환경에서 Lua를 실행합니다. 이 서버는 생성된 코드를 고정 배치 디스패처와 JSON/base64 직렬화된 DCS-SMS 동사 호출로 제한합니다. 로컬로 유지하고, 인증되지 않은 네트워크 서비스를 통해 stdio를 노출하지 말며, 필요하지 않을 때 External 실행을 비활성화된 상태로 두십시오.
오프라인 검증기와 패치 보고서는 DCS-SMS 사서함을 사용하지 않으며 DCS가 설치되거나 실행 중일 필요가 없습니다. 이들은 구조적 및 참조 무결성만 설정합니다. DCS가 아카이브를 로드하고, 저장 시 동일하게 정규화하거나, 런타임 AI, 센서, 트리거, 무기가 의도한 대로 동작한다는 것을 증명할 수 없습니다. 이는 명시적인 이후 수용 계층으로 남아 있습니다.
라이선스
MIT. DCS-SMS는 별도 프로젝트이며, tools/ 트리는 GPLv3입니다.
Windows 릴리스 빌드
릴리스 빌더는 게이트웨이를 컴파일하고, 잠긴 프로덕션 npm 종속성만 스테이징에 설치하고, 공식 Node Windows 배포판을 다운로드하여 게시된 SHA-256을 검증하고, 정확히 호환되는 DCS-SMS 브리지 소스와 GPL 텍스트를 복사하고, npm 라이선스를 목록화하고, 파일별 매니페스트를 작성하고, ZIP과 체크섬을 생성합니다:
npm run release:windows -- -DcsSmsSource C:\path\to\dcs-sms맞춤형 브리지 0.32.4 소스가 커밋되고 게시될 때까지 릴리스는 검증된 로컬 DCS-SMS 작업 트리에서 빌드되어야 합니다. 생성된 payload/bridge/SOURCE.md는 기본 개정판과 작업 트리가 더티인지 여부를 기록합니다. 해당하는 전체 브리지 소스는 동일한 패키지 안에 있습니다.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables LLMs and AI agents to interact with AFSIM through standardized MCP tools for scenario management, entity/component control, simulation execution, and results analysis.3721MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to interact with DCS World in real-time through chat by executing Lua scripts and providing tools for mission info, unit management, coordinate conversion, and more.107MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to control Unreal Engine 5 editor for automated Blueprint authoring, level inspection, actor spawning, and other editor workflows via a local Python MCP server and UE plugin.3AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to interact with an ArduPilot vehicle in real-time via MAVLink, including reading state, inspecting and changing parameters, switching flight modes, diagnosing arming failures, and gated arming/disarming.1MIT
Related MCP Connectors
Build, validate, and deploy multi-agent AI solutions from any AI environment.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ALasek/DCS-ME-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server