이 페이지에서

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 으로 이동하세요.

MCP 서버 상태 대화 상자

서버가 시작되지 않으면 General Messages 에 사용 중인 포트에 대한 경고가 표시되는지 확인하세요.

해당 포트에 다른 프로세스가 바인딩되어 있지 않은지 확인합니다. 예를 들어 Linux에서는 Terminallsof -i :3001 을 입력합니다.

3001 이외의 다른 포트를 사용하려면 MCP_SERVER_PORT 환경 변수를 설정하여 Qt Creator 시작 전에 포트를 구성합니다.

간단한 MCP 클라이언트 설정

POST 요청을 보내고 SSE 응답을 읽을 수 있는 모든 HTTP 클라이언트를 사용할 수 있습니다. 이 섹션에서는 pip 을 사용하여 간이 MCP 클라이언트를 설치하는 방법과 구성하는 방법을 설명합니다.

간단한 MCP 클라이언트를 설치하고 구성하려면 다음과 같이 하세요:

  1. Terminal 으로 이동하여 입력합니다:
    pip install simple-mcp-client
  2. simple_mcp_client\config.json 구성 파일을 qtcreator MCP 서버를 가리키도록 변경합니다:
    "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 도구 목록을 보려면 다음과 같이 하세요:

  1. Terminal 으로 이동하여 입력합니다:
    python -m simple_mcp_client.main
  2. Mini MCP Client Network Hub 에 입력합니다:
    connect qtcreator
  3. 도구 목록을 보려면 다음과 같이 입력합니다:
    tools qtcreator

    MCP 클라이언트의 Qt Creator 도구

  4. 도구를 실행하려면 다음을 입력합니다.
    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

plainText: 문자열

"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|falseNo
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
quitQuit Qt Creator정상 종료(디버깅을 중지하고 세션을 저장한 후 QApplication::quit()를 호출)를 수행합니다.Empty"success": true|falseNo
get_current_project현재 활성 프로젝트 가져오기시작 프로젝트의 표시 이름을 반환합니다.Empty"project": "MyApp"Yes
get_current_build_config활성 빌드 구성 가져오기현재 선택된 빌드 구성의 이름을 반환합니다.Empty"buildConfig": "Debug"
get_current_session활성 세션 이름 가져오기현재 로드된 세션의 이름을 반환합니다.Empty"session": "default"Yes

플러그인은 정적 도구 외에도 가장 일반적인 Qt Creator 액션을 트리거하기 위한 동적 도구를 등록합니다:

  • run_project Run 액션을 트리거합니다.
  • build Build 액션을 트리거합니다.
  • clean_project Clean 액션을 트리거합니다.
  • debug Debug 액션을 트리거합니다.

동적 도구는 빈 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.