MCP 클라이언트 사용
Qt Creator 는 모델 컨텍스트 프로토콜(MCP)을 지원하여 AI 어시스턴트가 프로젝트를 디버깅, 빌드 및 관리하기 위해 이를 제어할 수 있도록 합니다.
MCP 클라이언트를 사용하려면 클라이언트를 설치하고 Qt Creator MCP 서버 확장을 활성화하여 MCP 서버를 시작하세요.
MCP 서버 상태 보기
Qt Creator Qt Creator MCP 서버 확장을 활성화하면 MCP 서버가 시작됩니다. 서버는 127.0.0.1 에서 실행되며 포트 3001 에서 연결을 수락합니다. 보안상의 이유로 원격 컴퓨터에서는 실행할 수 없습니다.
MCP 서버 상태를 보려면 Tools > MCP Server > About MCP Server 으로 이동하세요.

서버가 시작되지 않으면 General Messages 에 사용 중인 포트에 대한 경고가 표시되는지 확인하세요.
해당 포트에 다른 프로세스가 바인딩되어 있지 않은지 확인합니다. 예를 들어 Linux에서는 Terminal 에 lsof -i :3001 을 입력합니다.
3001 이외의 다른 포트를 사용하려면 MCP_SERVER_PORT 환경 변수를 설정하여 Qt Creator 시작 전에 포트를 구성합니다.
간단한 MCP 클라이언트 설정
POST 요청을 보내고 SSE 응답을 읽을 수 있는 모든 HTTP 클라이언트를 사용할 수 있습니다. 이 섹션에서는 pip 을 사용하여 간이 MCP 클라이언트를 설치하는 방법과 구성하는 방법을 설명합니다.
간단한 MCP 클라이언트를 설치하고 구성하려면 다음과 같이 하세요:
- Terminal 으로 이동하여 입력합니다:
pip install simple-mcp-client
simple_mcp_client\config.json구성 파일을qtcreatorMCP 서버를 가리키도록 변경합니다:"mcpServers": { "qtcreator": { "enable": false, "type": "sse", "url": "http://127.0.0.1:3001/sse", "command": null, "args": [], "env": {} } }
config.json 파일은 다음 위치에서 찾을 수 있습니다:
- Linux의 경우
~/.config/simple_mcp_client/ - Windows의 경우
C:\Users\<username>\AppData\Roaming\simple_mcp_client
Qt Creator 도구 실행
MCP 클라이언트에서 Qt Creator 도구를 실행하려면 클라이언트를 시작하고 Qt Creator MCP 서버에 연결합니다.
MCP 클라이언트를 시작하고 Qt Creator 도구 목록을 보려면 다음과 같이 하세요:
- Terminal 으로 이동하여 입력합니다:
python -m simple_mcp_client.main
- Mini MCP Client Network Hub 에 입력합니다:
connect qtcreator
- 도구 목록을 보려면 다음과 같이 입력합니다:
tools qtcreator

- 도구를 실행하려면 다음을 입력합니다.
execute qtcreator <tool-name>
예를 들어
execute qtcreator list_sessions
SSE 연결에 실패하는 경우 MCP 클라이언트가 CORS(교차 출처 리소스 공유)를 지원하는지 확인하세요. 이는 서버가 다른 도메인, 스키마 또는 포트에 대한 리소스 로딩을 허용할 수 있도록 하는 HTTP 헤더 기반 메커니즘입니다.
Windows의 경우 방화벽이 localhost 에 대한 인바운드 연결을 차단할 수 있습니다. Qt Creator 실행 파일이 로컬 트래픽을 허용할 수 있는지 확인하세요.
Qt Creator 종료 시 디버그 세션이 중지되지 않으면 Debug 모드에서 수동으로 디버깅을 중지하거나 MCP_QUIT_TIMEOUT 환경 변수를 60초로 설정하여 시간 제한을 늘릴 수 있습니다.
도구 요약
다음 표에는 서버가 등록하는 Qt Creator 도구가 요약되어 있습니다. 각 도구는 이름, 사람이 읽을 수 있는 제목, 설명, 입력 및 출력 JSON 스키마, 도구가 읽기 전용인지 여부를 나타내는 플래그가 있는 JSON-RPC 메서드입니다.
| 이름 | 제목 | 설명 | 매개변수 | 결과 | 읽기 전용 |
|---|---|---|---|---|---|
get_build_status | 현재 빌드 상태 가져오기 | 현재 빌드 활동에 대한 간단한 텍스트 설명을 반환합니다. | 빈 객체입니다: {} | "result": "string" | 예 |
open_file | 파일 열기 Qt Creator | 에디터에서 지정된 파일(URI)을 엽니다. 파일은 자동으로 저장되지 않습니다. | path: URI 문자열 또는 절대 파일 경로 | "success": true|false | 아니요 |
file_plain_text | 파일을 일반 텍스트로 읽기 | 파일의 원시 텍스트 내용을 반환합니다. | path: URI | "success": "text": "<plain_text>" | Yes |
set_file_plain_text | 파일에 일반 텍스트 쓰기 | 제공된 텍스트로 파일을 덮어씁니다. 파일이 편집기에서 열려 있는 경우 변경 사항은 자동으로 저장되지 않습니다. | path: URI
| "success": true|false | 아니요 |
save_file | 파일 저장 | 편집기 문서가 수정된 경우 저장합니다. | path: URI | "success": true|false | 아니요 |
close_file | 파일 닫기 | 문서가 열려 있는 경우 문서를 닫습니다. | path: URI | "success": true|false | 아니요 |
list_projects | 사용 가능한 모든 프로젝트 나열 | 프로젝트 표시 이름의 배열을 반환합니다. | Empty | "projects": ["MyApp", "LibA", ...] | Yes |
list_build_configs | 사용 가능한 빌드 구성 나열 | 활성 프로젝트의 빌드 구성 이름 배열을 반환합니다. | Empty | "buildConfigs": ["Debug", "Release"] | 예 |
switch_build_config | 특정 빌드 구성으로 전환 | 현재 프로젝트의 명명된 빌드 구성을 활성화합니다. | name구성 이름을 문자열로 반환합니다. | "success": true|false | No |
list_open_files | 현재 열려 있는 파일 나열 | 절대 파일 경로의 배열을 반환합니다. | Empty | "openFiles": ["/path/to/file1.cpp", ...] | Yes |
list_sessions | 사용 가능한 Qt Creator 세션 목록 | 세션 이름의 배열을 반환합니다. | Empty | "sessions": ["default", "work", "debug"] | 예 |
load_session | 특정 세션 로드 | 지정된 세션으로 비동기적으로 전환합니다. | sessionName세션 이름을 문자열로 반환합니다. | "success": true|false | 아니요 |
save_session | 현재 세션 저장 | 현재 세션을 디스크에 저장합니다. | Empty | "success": true|false | 아니요 |
list_issues | 현재 이슈(경고 및 오류)를 나열합니다. | Issues 에서 이슈 문자열 배열을 반환합니다. | Empty | "issues": ["error: <string>", "warning: <string>"] | Yes |
quit | Quit Qt Creator | 정상 종료(디버깅을 중지하고 세션을 저장한 후 QApplication::quit()를 호출)를 수행합니다. | Empty | "success": true|false | No |
get_current_project | 현재 활성 프로젝트 가져오기 | 시작 프로젝트의 표시 이름을 반환합니다. | Empty | "project": "MyApp" | Yes |
get_current_build_config | 활성 빌드 구성 가져오기 | 현재 선택된 빌드 구성의 이름을 반환합니다. | Empty | "buildConfig": "Debug" | 예 |
get_current_session | 활성 세션 이름 가져오기 | 현재 로드된 세션의 이름을 반환합니다. | Empty | "session": "default" | Yes |
플러그인은 정적 도구 외에도 가장 일반적인 Qt Creator 액션을 트리거하기 위한 동적 도구를 등록합니다:
run_projectRun 액션을 트리거합니다.buildBuild 액션을 트리거합니다.clean_projectClean 액션을 트리거합니다.debugDebug 액션을 트리거합니다.
동적 도구는 빈 params 객체를 가져와 { "success": true|false } 을 반환합니다.
도구 추가하기
MCP 서버 확장은 Core::ActionManager 을 사용하여 표에 표시된 이름의 도구를 생성합니다. 구현은 McpServer::runOnGuiThread() 을 통해 UI 스레드에서 QAction::trigger()를 호출합니다.
따라서 ActionManager 을 통해 노출되는 다른 명령은 McpServer::initializeToolsForCommands() 에 작은 래퍼를 추가하여 MCP 도구로 바꿀 수 있습니다.
확장 기능 활성화도참조하세요 .
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.