Apache Doris MCP(Model Context Protocol) 서버는 Python과 FastAPI를 기반으로 구축된 백엔드 서비스로, 모델 컨텍스트 프로토콜(MCP)을 통해 Apache Doris 데이터베이스와 원활하게 통합되도록 설계되었습니다. AI 에이전트 및 클라이언트에 표준화된 인터페이스를 제공하여 자연어-SQL 변환(NL2SQL), SQL 쿼리 실행, 메타데이터 관리 및 데이터 분석 등의 기능을 지원합니다. 이 프로젝트는 Apache Doris 커뮤니티의 중요한 확장이며, 특히 효율적인 데이터 상호 작용과 지능형 분석이 필요한 비즈니스 시나리오에 적합합니다.
2025년 0.3.0 버전 출시 이후, 프로젝트는 SSE(Server-Sent Events) 기반 통신에서 통합된 Streamable HTTP 프로토콜로의 마이그레이션, 엔터프라이즈급 보안 프레임워크 추가, 성능 최적화 기능 등 중요한 아키텍처 업데이트를 거쳤습니다. 프로젝트의 핵심 목표는 MCP 프로토콜을 통해 AI 시스템과 Apache Doris 데이터베이스를 연결하여 지능적인 데이터 탐색 및 분석을 구현하는 것입니다.
Apache Doris MCP 서버는 다음과 같은 주요 기능을 제공합니다.
자연어-SQL 변환(NL2SQL)
SQL 쿼리 실행
exec_query
도구를 통해 SQL 명령을 직접 실행할 수 있으며, 데이터베이스 선택, 행 수 제한 및 시간 초과 설정을 사용자 정의할 수 있습니다.메타데이터 관리
get_all_databases
, get_database_tables
).get_table_schema
, get_table_comment
, get_column_comments
, get_table_indexes
).get_catalog_list
).감사 로그 쿼리
get_recent_audit_logs
를 통해 최근 감사 기록을 가져오고, 사용자 정의 시간 범위 및 기록 제한을 지원합니다.엔터프라이즈급 보안 프레임워크
성능 최적화
performance_stats
).다중 통신 모드
/mcp
엔드포인트를 통해 요청/응답 및 스트리밍 전송을 지원합니다(src/streamable_server.py
)./sse
및 /mcp/messages
엔드포인트를 통해 통신을 지원했습니다(src/sse_server.py
).src/stdio_server.py
).실험적 기능
column_analysis
)을 통해 데이터 통찰력을 제공합니다.프로젝트의 아키텍처 설계는 모듈화되고 효율적이며, 다음과 같은 주요 구성 요소를 포함합니다.
/mcp
엔드포인트를 통해 모든 요청을 처리하여 통합을 단순화합니다.doris_mcp_server/utils/db.py
: 데이터베이스 연결(get_db_connection
) 및 쿼리 실행(execute_query
, execute_query_df
) 기능을 제공합니다.doris_mcp_server/utils/schema_extractor.py
: MetadataExtractor
클래스는 메타데이터 추출을 담당하며, 캐시 메커니즘을 포함합니다.doris_mcp_server/utils/sql_executor_tools.py
: execute_sql_query
함수는 쿼리 로직을 캡슐화하며, 보안 검사 및 결과 직렬화를 포함합니다.DB_HOST
, DB_PORT
, DB_USER
, DB_PASSWORD
).아키텍처 변경: 0.3.0 버전에서는 약 300줄의 SSE 레거시 코드를 제거하고 Streamable HTTP로 마이그레이션하여 도구 이름을 통합하고(
mcp_doris_
접두사 제거) 모듈화 정도를 높였습니다.
uv
또는 pip
)저장소 복제:
git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
종속성 설치:
uv
(권장) 또는 pip
를 사용하여 설치합니다.
uv sync
또는
pip install -r requirements.txt
환경 변수 구성:
.env
파일을 생성하거나 환경 변수를 직접 설정합니다.
export DORIS_HOST=<doris-host>
export DORIS_PORT=<port>
export DORIS_USER=<doris-user>
export DORIS_PASSWORD=<doris-pwd>
export SERVER_PORT=3000
서버 시작:
uv run --with mcp-doris --python 3.13 mcp-doris
또는
python -m mcp_doris.mcp_server
시작 확인:
시작에 성공하면 MCP 클라이언트(예: Cursor) 또는 내장된 MCP 브라우저(http://localhost:5173
)를 통해 상호 작용할 수 있습니다.
테스트 스크립트를 실행하여 데이터베이스 연결을 확인합니다.
python src/doris-mcp-server/test.py
예상 출력:
🚀 Doris MCP Server is starting...
[DorisConnector] Connected to 127.0.0.1:9030
✅ Database connection successful.
[DorisConnector] Connection closed.
실시간 데이터 분석
메타데이터 탐색
AI 기반 비즈니스 인텔리전스
보안 규정 준수 관리
다중 카탈로그 환경
column_analysis
)은 실험적이며 버그가 있을 수 있습니다. Apache Doris MCP 서버는 Apache Doris 데이터베이스와 AI 기반 분석 요구 사항을 연결하는 강력하고 유연한 도구입니다. NL2SQL, 메타데이터 관리, 보안 및 성능 최적화와 같은 기능은 실시간 데이터 분석, 비즈니스 인텔리전스 및 엔터프라이즈급 애플리케이션에서 광범위한 잠재력을 제공합니다.