remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Allows AI assistants to execute SQL queries against a Trino distributed SQL query engine, with support for catalog/schema/table discovery and schema inspection.
Go에서 Trino MCP 서버 사용
Go 언어로 구현된 Trino용 고성능 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 프로젝트는 AI 어시스턴트가 표준화된 MCP 도구를 통해 Trino의 분산 SQL 쿼리 엔진과 원활하게 상호 작용할 수 있도록 지원합니다.
개요
이 프로젝트는 Go 언어로 Trino용 모델 컨텍스트 프로토콜(MCP) 서버를 구현합니다. 이를 통해 AI 비서가 표준화된 MCP 도구를 통해 Trino의 분산 SQL 쿼리 엔진에 접근할 수 있습니다.
Trino(이전 명칭 PrestoSQL)는 대규모 데이터 세트에 대한 빠른 분석을 위해 설계된 강력한 분산 SQL 쿼리 엔진입니다.
특징
- ✅ Go에서 MCP 서버 구현
- ✅ MCP 도구를 통한 Trino SQL 쿼리 실행
- ✅ 카탈로그, 스키마 및 테이블 검색
- ✅ Docker 컨테이너 지원
- ✅ STDIO 및 HTTP 전송을 모두 지원합니다
- ✅ 커서 및 기타 MCP 클라이언트에 대한 SSE(Server-Sent Events) 지원
- ✅ Cursor, Claude Desktop, Windsurf, ChatWise 및 모든 MCP 호환 클라이언트와 호환됩니다.
설치
Homebrew(macOS 및 Linux)
mcp-trino를 설치하는 가장 쉬운 방법은 Homebrew를 사용하는 것입니다.
지엑스피1
최신 버전으로 업데이트하려면:
대체 설치 방법
수동 다운로드
- GitHub 릴리스 페이지에서 플랫폼에 적합한 바이너리를 다운로드하세요.
- PATH에 포함된 디렉토리에 바이너리를 넣으세요(예: Linux/macOS의 경우
/usr/local/bin
). - 실행 가능하게 만들기(Linux/macOS에서
chmod +x mcp-trino
)
출처에서
다운로드
귀하의 플랫폼에 맞게 미리 빌드된 바이너리를 다운로드할 수 있습니다.
플랫폼 | 건축학 | 다운로드 링크 |
---|---|---|
맥OS | x86_64(인텔) | 다운로드 |
맥OS | ARM64(애플 실리콘) | 다운로드 |
리눅스 | x86_64 | 다운로드 |
리눅스 | ARM64 | 다운로드 |
윈도우 | x86_64 | 다운로드 |
또는 GitHub 릴리스 페이지에서 사용 가능한 모든 다운로드를 확인하세요.
MCP 통합
이 MCP 서버는 여러 AI 애플리케이션과 통합될 수 있습니다.
Docker 이미지 사용
로컬 바이너리 대신 Docker 이미지를 사용하려면:
참고 :
host.docker.internal
특수 DNS 이름을 사용하면 컨테이너가 호스트 머신에서 실행 중인 서비스에 연결할 수 있습니다. Trino 서버가 다른 곳에서 실행 중인 경우, 적절한 호스트로 변경하세요.
이 Docker 구성은 아래 모든 애플리케이션에서 사용할 수 있습니다.
커서
Cursor 와 함께 사용하려면 ~/.cursor/mcp.json
만들거나 편집하세요.
환경 변수를 귀하의 특정 Trino 구성으로 바꾸세요.
HTTP+SSE 전송 모드(Cursor 통합에 지원됨):
그런 다음 별도의 터미널에서 다음을 사용하여 서버를 시작합니다.
클로드 데스크탑
Claude Desktop 과 함께 사용하려면 Claude 구성 파일을 편집하세요.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
구성을 업데이트한 후 Claude Desktop을 다시 시작하세요. 도구 메뉴에서 MCP 도구를 사용할 수 있습니다.
윈드서핑
Windsurf 와 함께 사용하려면 mcp_config.json
만들거나 편집하세요.
변경 사항을 적용하려면 Windsurf를 다시 시작하세요. Trino MCP 도구는 Cascade AI에서 사용할 수 있습니다.
챗와이즈
ChatWise 와 함께 사용하려면 다음 단계를 따르세요.
- ChatWise를 열고 설정으로 이동하세요.
- 도구 섹션으로 이동
- 새로운 도구를 추가하려면 "+" 아이콘을 클릭하세요.
- "명령줄 MCP"를 선택하세요
- 다음 세부정보로 구성하세요.
- ID:
mcp-trino
(또는 원하는 이름) - 명령어:
mcp-trino
- 인수: (비워두기)
- Env: 다음 환경 변수를 추가합니다.Copy
- ID:
또는 JSON에서 구성을 가져올 수 있습니다.
- 이 JSON을 클립보드에 복사하세요:Copy
- ChatWise 설정 > 도구에서 "+" 아이콘을 클릭하세요.
- "클립보드에서 JSON 가져오기"를 선택하세요
- 도구 옆에 있는 스위치를 토글하여 활성화합니다.
활성화되면 ChatWise의 입력 상자 아래에 있는 망치 아이콘을 클릭하여 Trino MCP 도구에 액세스하세요.
사용 가능한 MCP 도구
서버는 다음과 같은 MCP 도구를 제공합니다.
실행_쿼리
복잡한 분석 쿼리에 대한 전체 SQL 지원을 통해 Trino에 대한 SQL 쿼리를 실행합니다.
샘플 프롬프트:
"지역별로 고객이 몇 명이나 있나요? 내림차순으로 보여 주실 수 있나요?"
예:
응답:
목록_카탈로그
Trino 서버에서 사용 가능한 모든 카탈로그를 나열하여 데이터 생태계에 대한 포괄적인 보기를 제공합니다.
샘플 프롬프트:
"Trino 환경에서는 어떤 데이터베이스에 접근할 수 있나요?"
예:
응답:
목록_스키마
카탈로그에 있는 모든 스키마를 나열하면 데이터 계층을 효율적으로 탐색하는 데 도움이 됩니다.
샘플 프롬프트:
"tpch 카탈로그에서 어떤 스키마나 데이터 세트를 사용할 수 있나요?"
예:
응답:
리스트_테이블
스키마에 있는 모든 테이블을 나열하여 사용 가능한 데이터 세트를 파악합니다.
샘플 프롬프트:
"tpch tiny 스키마에서 어떤 테이블을 사용할 수 있나요? 어떤 데이터를 쿼리할 수 있는지 알아야 합니다."
예:
응답:
get_table_schema
더 나은 쿼리 계획을 위해 데이터 구조를 이해하고 테이블의 스키마를 파악합니다.
샘플 프롬프트:
"고객 테이블에는 어떤 열이 있나요? 쿼리를 작성하기 전에 데이터 유형과 구조를 알아야 합니다."
예:
응답:
이 정보는 테이블에 대한 쿼리를 작성하기 전에 열 이름, 데이터 유형 및 NULL 허용 제약 조건을 이해하는 데 매우 중요합니다.
종단 간 예
AI 도우미가 이러한 도구를 사용하여 비즈니스 질문에 답하는 방법을 보여주는 완전한 상호작용 예는 다음과 같습니다.
사용자 질의: "가장 큰 고객을 분석하는 데 도움을 주시겠습니까? 계좌 잔액이 가장 많은 상위 5개 고객을 알고 싶습니다."
AI Assistant의 워크플로:
- 먼저, 사용 가능한 카탈로그를 찾아보세요Copy
- 그런 다음 사용 가능한 스키마를 찾으세요.Copy
- 사용 가능한 테이블 탐색Copy
- 고객 테이블 스키마를 확인하세요Copy
- 마지막으로 쿼리를 실행합니다.Copy
- 결과를 사용자에게 반환합니다.Copy
이 원활한 워크플로는 MCP 도구를 사용하여 AI 도우미가 대화형 방식으로 데이터를 탐색하고 쿼리하는 방법을 보여줍니다.
구성
다음 환경 변수를 사용하여 서버를 구성할 수 있습니다.
변하기 쉬운 | 설명 | 기본 |
---|---|---|
트리노 호스트 | Trino 서버 호스트 이름 | 로컬호스트 |
트리노_포트 | 트리노 서버 포트 | 8080 |
트리노_유저 | 트리노 사용자 | 트리노 |
트리노 비밀번호 | 트리노 비밀번호 | (비어 있는) |
트리노_카탈로그 | 기본 카탈로그 | 메모리 |
트리노_스키마 | 기본 스키마 | 기본 |
트리노_스케메 | 연결 방식(http/https) | https |
트리노_SSL | SSL 활성화 | 진실 |
TRINO_SSL_불안전 | 안전하지 않은 SSL 허용 | 진실 |
트리노_쓰기_쿼리_허용 | 읽기 전용이 아닌 SQL 쿼리 허용 | 거짓 |
MCP_운송 | 전송 방법(stdio/http) | stdio |
MCP_포트 | http 전송을 위한 HTTP 포트 | 9097 |
MCP_호스트 | HTTP 콜백을 위한 호스트 | 로컬호스트 |
참고 :
TRINO_SCHEME
"https"로 설정된 경우 제공된 값에 관계없이TRINO_SSL
자동으로 true로 설정됩니다.
중요 : 기본 연결 모드는 HTTPS입니다. HTTP 전용 Trino 서버를 사용하는 경우 환경 변수에
TRINO_SCHEME=http
설정해야 합니다.
보안 참고 : 기본적으로 SQL 삽입을 방지하기 위해 읽기 전용 쿼리(SELECT, SHOW, DESCRIBE, EXPLAIN)만 허용됩니다. 쓰기 작업이나 기타 읽기 전용 쿼리를 실행해야 하는 경우
TRINO_ALLOW_WRITE_QUERIES=true
설정하세요. 단, 이 설정은 이 보안 기능을 우회합니다.
커서 통합 : 커서와 함께 사용하는 경우
MCP_TRANSPORT=http
설정하고/sse
엔드포인트에 연결하세요. 서버가 SSE(Server-Sent Events) 연결을 자동으로 처리합니다.
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
CI/CD 및 릴리스
이 프로젝트에서는 지속적인 통합을 위해 GitHub Actions를 사용하고 자동 릴리스를 위해 GoReleaser를 사용합니다.
지속적인 통합 검사
CI 파이프라인은 모든 PR에 대해 다음과 같은 검사를 수행하고 메인 브랜치에 커밋합니다.
코드 품질
- Linting : golangci-lint를 사용하여 일반적인 코드 문제 및 스타일 위반 사항 확인
- Go 모듈 검증 : go.mod 및 go.sum이 제대로 유지되는지 확인
- 포맷팅 : gofmt로 코드가 올바르게 포맷되었는지 확인
보안
- 취약점 스캐닝 : govulncheck를 사용하여 종속성의 알려진 취약점 확인
- 종속성 스캐닝 : Trivy를 사용하여 종속성의 취약점(CRITICAL, HIGH, MEDIUM)을 스캔합니다.
- SBOM 생성 : 종속성 추적을 위한 소프트웨어 BOM 생성
- SLSA Provenance : 공급망 보안을 위한 검증 가능한 빌드 출처 생성
테스트
- 단위 테스트 : 경쟁 감지 및 코드 커버리지 보고를 통한 테스트 실행
- 빌드 검증 : 코드베이스가 성공적으로 빌드되는지 확인
CI/CD 보안
- 최소 권한 : 워크플로는 최소한의 필수 권한으로 실행됩니다.
- 고정된 버전 : 모든 GitHub 작업은 공급망 공격을 방지하기 위해 특정 버전을 사용합니다.
- 종속성 업데이트 : Dependabot을 통한 자동 종속성 업데이트
릴리스 프로세스
변경 사항이 메인 브랜치에 병합되면:
- CI 검사는 코드 품질과 보안을 검증하기 위해 실행됩니다.
- 성공하면 다음을 사용하여 새 릴리스가 자동으로 생성됩니다.
- 커밋 메시지 기반 의미적 버전 관리
- 여러 플랫폼을 위한 바이너리 빌드
- GitHub 컨테이너 레지스트리에 Docker 이미지 게시
- SBOM 및 출처 증명
This server cannot be installed
Go로 구현된 Trino용 고성능 Model Context Protocol(MCP) 서버입니다.