GitHub, Copilot CLI의 C++ 언어 서버가 이제 MSBuild 프로젝트를 자동 구성한다고 발표, 그러나 저장소 가이드(10월 21일 최종 수정)는 여전히 Windows용·기본 비활성·기능 플래그로 켜지고 시작 시에만 실행되는 실험으로 설명
2026년 11월 10일 GitHub는 Copilot CLI용 Microsoft C++ Language Server가 이제 MSBuild 컴파일 명령 추출기를 함께 제공하고, 프로젝트를 열면서 서버가 시작될 때 자동으로 호출해 에이전트가 설정 스킬을 찾아 실행할 필요가 없다고 밝혔습니다. GitHub는 생성이 결정적이라 설정 토큰 사용이 줄어든다고 하지만 수치는 제시하지 않았습니다. 10월 21일에 마지막으로 수정된 저장소 가이드는 자동 MSBuild 구성이 기본적으로 비활성화되어 있고, 기능 플래그로 켜지며, Windows용이고, 시작 시에만 실행된다고 말하며, README도 여전히 MSBuild 사용자에게 스킬 실행을 안내합니다. 어느 쪽이 현재 상태인지 출처는 밝히지 않습니다. 사용자별 state.json 설정으로 이를 끄거나 시간 제한을 정할 수 있습니다. CMake와 다른 빌드는 여전히 직접 compile_commands.json을 제공하거나 스킬을 써야 합니다. 서버는 미리 보기 단계이고 Copilot 구독이 필요하며, 이름 바꾸기, 서식 지정, 텍스트 문서 동기화는 지원하지 않습니다.
2026년 11월 10일 GitHub는 변경 로그에서 GitHub Copilot CLI용 Microsoft C++ Language Server가 이제 MSBuild 컴파일 명령 추출기를 함께 제공하고 자동으로 호출한다고 발표했습니다. 이 게시물에 따르면 MSBuild 기반 C++ 프로젝트에서 정확한 코드 인텔리전스를 얻기 전에 에이전트가 별도의 구성 스킬을 찾아 실행할 필요가 없어집니다. 이 기사는 이 변경 로그 게시물과 microsoft/cpp-language-server 저장소의 세 페이지, 즉 README, 컴파일 명령 생성 가이드, 지원되는 LSP 기능 표를 근거로 합니다. 플러그인을 설치하거나 프로젝트를 열거나 추출기를 실행하지는 않았습니다. 게시물 속 이미지, 게시물이 링크한 7월 2일의 이전 변경 로그, 그 밖의 링크된 문서 페이지도 읽지 않았습니다.
게시물은 이전 설정 방식과 이번 변경을 설명합니다. 이전에는 MSBuild 기반 C++ 프로젝트에서 정의로 이동, 참조 찾기 같은 언어 서버 기능을 쓰려면 둘 중 하나가 필요했습니다. 직접 compile_commands.json 파일을 제공하거나, Copilot이 구성 스킬을 찾아 실행해 컴파일 데이터베이스를 생성하는 것입니다. GitHub는 이 추가 탐색 단계가 설정 시간을 늘리고, Copilot이 코드 작업을 시작하기 전에 토큰을 소비했다고 말합니다. 게시물은 세 가지 변경을 듭니다. 컴파일 명령 추출기가 언어 서버에 직접 포함되어 항상 사용할 수 있습니다. Copilot은 프로젝트를 열면서 언어 서버를 시작할 때 추출기를 호출하며, 수동 작업이나 에이전트가 실행하는 설정 스킬이 필요 없습니다. 그리고 MSBuild 프로젝트의 컴파일 데이터베이스 생성은 결정적이며, GitHub는 이것이 설정에 쓰는 토큰을 줄인다고 말합니다. 게시물은 절약되는 시간이나 토큰의 수치를 제시하지 않으므로, 이 이점은 GitHub 자신의 설명이지 측정 결과가 아닙니다.
이 파일이 왜 중요한지는 저장소의 가이드가 설명합니다. 언어 서버는 compile_commands.json 파일로 프로젝트의 각 번역 단위가 어떻게 빌드되는지 파악합니다. 컴파일러 옵션, 포함 경로, 전처리기 정의는 모두 서버가 소스 파일을 해석하는 방식에 영향을 주며, 가이드는 이 컴파일 데이터베이스가 정확한 정의로 이동, 참조 찾기, 그 밖의 의미 기반 코드 인텔리전스에 필요한 빌드 컨텍스트를 제공한다고 말합니다. 가이드의 예는 이렇습니다. Copilot에게 함수의 정의를 찾거나 호출자를 확인해 달라고 하면, 언어 서버는 그 빌드 컨텍스트를 사용해 심볼 사이의 관계를 해석합니다.
가이드는 변경 로그 게시물에 없는 조건을 붙여 자동 경로를 설명합니다. 가이드의 MSBuild 절에는 자동 MSBuild 구성이 기본적으로 비활성화되어 있으며, 기능 플래그를 통해 실험이 사용자에게 활성화된 경우에만 사용할 수 있다는 메모가 있습니다. 같은 절은 이를 Windows에서의 동작으로 설명합니다. 실험이 활성화되면, compile_commands.json을 생성해야 할 때 언어 서버가 시작 시 내장 추출기를 실행합니다. README의 빠른 시작도 CMake나 MSBuild(vcxproj) 프로젝트 사용자에게 여전히 generate-compile-commands 스킬을 실행하라고 안내합니다. 저장소 페이지에는 가이드의 최근 커밋이 2026년 10월 21일, README가 2026년 11월 3일로 표시되며, 둘 다 11월 10일 게시물보다 앞섭니다. 게시물이 이 실험이 이제 모두에게 켜졌다는 뜻인지, 가이드가 오래된 것인지 출처는 밝히지 않으며, 이 기사도 판단하지 않습니다. 또한 사용자가 자신에게 실험이 활성화되었는지 확인하는 방법도 출처에는 없습니다.
가이드는 자동 경로가 하지 않는 일도 밝힙니다. 이 경로는 시작 시 실행되며, CLI 세션 도중의 프로젝트 변경에는 반응하지 않습니다. 세션 중에 프로젝트가 바뀌면 Copilot CLI 스킬로 compile_commands.json을 다시 생성하라고 가이드는 말합니다. 이런 변경을 감지하는 파일 시스템 감시는 향후 업데이트에 계획되어 있다고 하지만, 시기는 밝히지 않습니다.
가이드에 따르면 자동 추출을 제어하는 설정이 두 가지 있습니다. 이 설정은 Windows의 사용자별 state.json 파일, 즉 %LOCALAPPDATA%\mscppls\state.json에 둡니다. 설정은 해당 사용자의 모든 저장소에 적용되며, 프로젝트의 cpp-lsp.json이나 Copilot CLI의 lsp.json에 넣는 것이 아닙니다. 절차는 C++ 언어 서버를 사용하는 Copilot CLI 세션을 닫고, 다른 속성을 모두 유지한 채 파일에 속성을 추가하거나 수정한 뒤, Copilot CLI를 다시 시작하는 것입니다. auto_generate_compile_commands_for_msbuild를 false로 설정하면 자동 추출이 비활성화됩니다. true로 설정하면 다시 활성화되지만 기능 플래그를 우회하지는 않으며, 실험 자체도 활성화되어 있어야 합니다. msbuild_extractor_timeout_seconds는 시간 제한을 초 단위로 정하며, 자동 추출이 활성화된 경우에만 적용됩니다. 가이드의 예는 120입니다. 변경은 다음 언어 서버 시작 때 반영됩니다. 가이드는 이 상태 파일에 인증 데이터와 다른 사용자 설정도 들어 있을 수 있으므로, 기존 파일을 예시 내용만으로 바꾸거나, 저장소에 커밋하거나, 공개 이슈에 첨부하지 말라고 경고합니다.
게시물에 따르면 다른 빌드 시스템은 여전히 직접 compile_commands.json을 제공하거나 이를 생성하는 스킬을 써야 합니다. CMake의 경우 게시물은 이전 릴리스에서 소개된 컴파일 명령 생성 스킬을 가리키며, Copilot CLI에 "load project"라고 요청해 호출한다고 말합니다. 가이드는 Ninja나 Makefile 생성기를 쓰는 CMake 프로젝트는 구성 명령에 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON을 추가해 이 파일을 만들 수 있고, 다른 생성기를 쓰는 프로젝트는 먼저 Ninja나 Makefile로 한 번만 구성할 수 있는지 확인해야 한다고 덧붙입니다. 실험이 켜지지 않았거나 자동 추출을 끈 MSBuild 사용자에게는 가이드가 그 스킬이나 샘플 애플리케이션을 안내하며, 복잡한 프로젝트에서는 샘플을 조정해야 할 수 있다고 말합니다. 사용자 지정 빌드에 대해서는 과정을 재현할 수 있도록 단계를 프로젝트 전용 스킬로 저장할 것을 권하며, setup-cpp-language-server 스킬을 시작 템플릿으로 제시합니다.
README는 시작 방법을 설명합니다. 이 언어 서버는 미리 보기 단계이며 향후 릴리스에서 바뀔 수 있다고 하고, Visual Studio와 VS Code에서 쓰는 것과 같은 C++ 코드 인텔리전스를 Windows, macOS, Linux의 GitHub Copilot CLI에 제공한다고 말합니다. 전제 조건은 활성 GitHub Copilot 구독, 세션 디렉터리를 지원하는 GitHub Copilot CLI(시험판 1.0.106-5로 테스트됨), 그리고 npm입니다. 빠른 시작은 여섯 단계입니다. Copilot CLI 안에서 /plugin install cpp-language-server@copilot-plugins로 플러그인을 설치합니다(서버가 함께 들어 있고 자동 업데이트됨). npx @microsoft/cpp-language-server --accept-eula --login을 실행해 라이선스 조건에 동의하고 GitHub에 로그인합니다. compile_commands.json 파일을 만듭니다. 프로젝트 디렉터리에서 Copilot CLI를 실행합니다. /lsp show를 실행해 "cpp" 서버가 보이는지 확인합니다. 그다음 평소처럼 Copilot CLI를 사용합니다. README는 에이전트가 도구를 쓰도록 프롬프트에 "use LSP tools" 같은 문구를 넣어 보라고 제안합니다.
저장소의 기능 표는 서버가 어떤 요청에 응답하는지 보여 줍니다. 지원되는 것은 호버, 완성, 시그니처 도움말, 정의로 이동, 선언으로 이동, 형식 정의로 이동, 참조 찾기, 문서 심볼, 작업 영역 심볼, 호출 계층, 접기 범위, 풀 방식 진단, 작업 영역 폴더입니다. 지원되지 않는 것은 이름 바꾸기, 코드 작업, 코드 렌즈, 문서 강조 표시, 그리고 문서·범위·입력 시 서식 지정입니다. 텍스트 문서 동기화도 지원되지 않습니다. 표의 메모에 따르면 AI 에이전트는 LSP 작업을 호출하기 전에 디스크의 파일을 업데이트해 두어야 합니다. 이 기사는 이 표를, 서버가 심볼 이름을 바꾸지 않으며 아직 디스크에 없는 수정 사항도 보지 못한다는 뜻으로 읽습니다.
데이터와 적용 범위에 대해 README는 이 소프트웨어가 사용자와 사용 방식에 관한 정보를 수집해 Microsoft에 보낼 수 있으며, 원격 분석은 저장소의 설명대로 끌 수 있다고 말합니다. 링크된 명령줄 옵션 페이지는 이 기사에서 읽지 않았습니다. 게시물은 활성 GitHub Copilot 구독이 필요하다고 말합니다. 출처가 뒷받침하는 결론은 좁습니다. 11월 10일 GitHub는 Copilot CLI의 C++ 언어 서버에 대해 MSBuild 자동 설정을 설명했습니다. 반면 그날보다 앞서 마지막으로 수정된 저장소 자체의 가이드는 같은 기능을 Windows용이며 기본적으로 꺼져 있는 실험으로 설명합니다. 설정 시간이나 토큰 사용량을 측정한 출처는 없습니다.
Sources
FAQ
C++ 언어 서버가 이제 MSBuild 프로젝트를 자동으로 설정하나요?
GitHub의 11월 10일 게시물은 내장 추출기가 프로젝트를 열 때 자동으로 실행된다고 말합니다. 반면 10월 21일에 마지막으로 수정된 저장소 가이드는 자동 MSBuild 구성을 Windows용이며 기본적으로 꺼져 있고 기능 플래그로 사용자에게 켜지는 실험으로 설명합니다. 어느 쪽이 현재 상태인지, 자신에게 켜졌는지 확인하는 방법은 출처에 없습니다.
자동 MSBuild 추출을 끄거나 시간 제한을 바꾸려면 어떻게 하나요?
저장소 가이드에 따르면 Windows에서 사용자별 state.json을 다른 속성은 그대로 둔 채 편집합니다. auto_generate_compile_commands_for_msbuild를 false로 하면 꺼지고, msbuild_extractor_timeout_seconds는 자동 추출이 켜져 있을 때만 적용되는 시간 제한입니다. 그다음 Copilot CLI를 다시 시작합니다. 파일에 인증 데이터가 있을 수 있으므로 커밋하거나 공유하지 마세요.
이 서버가 지원하지 않는 LSP 기능은 무엇인가요?
저장소의 기능 표는 이름 바꾸기, 코드 작업, 코드 렌즈, 문서 강조 표시, 그리고 문서·범위·입력 시 서식 지정을 지원하지 않는다고 나열합니다. 텍스트 문서 동기화도 지원되지 않으며, 표에 따르면 에이전트는 LSP 작업을 호출하기 전에 디스크의 파일을 업데이트해 두어야 합니다. 호버, 완성, 정의로 이동, 참조 찾기, 호출 계층은 지원됩니다.