DBHub는 MCP(Model Context Protocol) 서버 인터페이스를 구현하는 범용 데이터베이스 게이트웨이입니다. 이 게이트웨이를 통해 MCP 호환 클라이언트는 다양한 데이터베이스에 연결하고 탐색할 수 있습니다.
지엑스피1
데모 SSE 엔드포인트
https://demo.dbhub.ai/sse는 샘플 직원 데이터베이스를 연결합니다. Cursor 또는 MCP Inspector를 연결하여 실제 작동 모습을 확인할 수 있습니다.
지원되는 매트릭스
데이터베이스 리소스
리소스 이름 | URI 형식 | 포스트그레스큐엘 | MySQL | 마리아DB | SQL 서버 | SQLite | 신탁 |
---|---|---|---|---|---|---|---|
스키마 | db://schemas | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
스키마의 테이블 | db://schemas/{schemaName}/tables | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
스키마의 테이블 구조 | db://schemas/{schemaName}/tables/{tableName} | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
테이블의 인덱스 | db://schemas/{schemaName}/tables/{tableName}/indexes | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
스키마의 프로시저 | db://schemas/{schemaName}/procedures | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
스키마의 프로시저 세부 정보 | db://schemas/{schemaName}/procedures/{procedureName} | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
데이터베이스 도구
도구 | 명령 이름 | 포스트그레스큐엘 | MySQL | 마리아DB | SQL 서버 | SQLite | 신탁 |
---|---|---|---|---|---|---|---|
SQL 실행 | execute_sql | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
목록 커넥터 | list_connectors | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
신속한 기능
즉각적인 | 명령 이름 | 포스트그레스큐엘 | MySQL | 마리아DB | SQL 서버 | SQLite | 신탁 |
---|---|---|---|---|---|---|---|
SQL 생성 | generate_sql | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
DB 요소 설명 | explain_db | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
설치
도커
국립민간공원
참고: 데모 모드에는 직원, 부서, 급여 등에 대한 테이블이 있는 SQLite 샘플 "직원" 데이터베이스가 함께 제공됩니다.
클로드 데스크탑
- Claude Desktop은
stdio
전송만 지원합니다 . https://github.com/orgs/modelcontextprotocol/discussions/16
커서
- 커서는
stdio
와sse
모두 지원합니다. - 커서 MCP 가이드를 따르고 에이전트 모드를 사용하세요.
용법
SSL 연결
DSN 문자열의 sslmode
매개변수를 사용하여 SSL 모드를 지정할 수 있습니다.
데이터 베이스 | sslmode=disable | sslmode=require | 기본 SSL 동작 |
---|---|---|---|
포스트그레스큐엘 | ✅ | ✅ | 인증서 검증 |
MySQL | ✅ | ✅ | 인증서 검증 |
마리아DB | ✅ | ✅ | 인증서 검증 |
SQL 서버 | ✅ | ✅ | 인증서 검증 |
신탁 | ✅ | ✅ | N/A(Oracle 클라이언트 구성 사용) |
SQLite | ❌ | ❌ | N/A(파일 기반) |
SSL 모드 옵션:
sslmode=disable
: 모든 SSL/TLS 암호화가 해제됩니다. 데이터는 일반 텍스트로 전송됩니다.sslmode=require
: 연결은 암호화되지만 서버 인증서는 검증되지 않습니다. 이 설정은 패킷 스니핑으로부터 보호하지만, 중간자 공격(man-in-the-middle attack)으로부터는 보호하지 못합니다. 신뢰할 수 있는 자체 서명 CA에 사용할 수 있습니다.
sslmode
지정하지 않으면 대부분의 데이터베이스는 가장 높은 수준의 보안을 제공하는 인증서 검증을 기본적으로 사용합니다.
사용 예:
읽기 전용 모드
DBHub를 읽기 전용 모드로 실행하면 SQL 쿼리 실행이 읽기 전용 작업으로 제한됩니다.
읽기 전용 모드에서는 읽기 전용 SQL 작업 만 허용됩니다.
이렇게 하면 프로덕션 데이터베이스에 연결할 때 보안을 한층 강화할 수 있습니다.
데이터베이스 연결 구성
테스트를 위해 샘플 직원 데이터베이스와 함께 데모 모드에서 DBHub를 사용할 수 있습니다.
실제 데이터베이스의 경우 데이터베이스 원본 이름(DSN)이 필요합니다. 다음과 같은 여러 가지 방법으로 제공할 수 있습니다.
- 명령줄 인수 (가장 높은 우선순위):
- 환경 변수 (두 번째 우선순위):
- 환경 파일 (3번째 우선순위):
- 개발용: DSN으로
.env.local
만듭니다. - 프로덕션의 경우: DSN GXP14로
.env
생성합니다.
- 개발용: DSN으로
[!경고] Docker에서 실행할 때 호스트 머신에서 실행 중인 데이터베이스에 연결하려면
localhost
대신host.docker.internal
사용하세요. 예:mysql://user:password@host.docker.internal:3306/dbname
DBHub는 다음과 같은 데이터베이스 연결 문자열 형식을 지원합니다.
데이터 베이스 | DSN 형식 | 예 |
---|---|---|
MySQL | mysql://[user]:[password]@[host]:[port]/[database] | mysql://user:password@localhost:3306/dbname?sslmode=disable |
마리아DB | mariadb://[user]:[password]@[host]:[port]/[database] | mariadb://user:password@localhost:3306/dbname?sslmode=disable |
포스트그레스큐엘 | postgres://[user]:[password]@[host]:[port]/[database] | postgres://user:password@localhost:5432/dbname?sslmode=disable |
SQL 서버 | sqlserver://[user]:[password]@[host]:[port]/[database] | sqlserver://user:password@localhost:1433/dbname?sslmode=disable |
SQLite | sqlite:///[path/to/file] 또는 sqlite::memory: | sqlite:///path/to/database.db , sqlite:C:/Users/YourName/data/database.db (windows) 또는 sqlite::memory: |
신탁 | oracle://[user]:[password]@[host]:[port]/[service_name] | oracle://username:password@localhost:1521/service_name?sslmode=disable |
신탁
"NJS-138: 이 데이터베이스 서버 버전에 대한 연결은 Thin 모드에서 node-oracledb에서 지원되지 않습니다."라는 오류가 표시되면 아래 설명된 대로 Thick 모드를 사용해야 합니다.
도커
bytebase/dbhub docker 이미지 대신 bytebase/dbhub
bytebase/dbhub-oracle-thick
사용하세요.
엔피엑스
- 플랫폼에 맞는 Oracle Instant Client를 다운로드하고 설치하세요.
ORACLE_LIB_DIR
환경 변수를 Oracle Instant Client 경로로 설정합니다.
SQL 서버
추가 쿼리 매개변수:
입증
authentication=azure-active-directory-access-token
. Azure에서 실행하는 경우에만 적용됩니다. DefaultAzureCredential 을 참조하세요.
수송
- stdio (기본값) - Claude Desktop과 같은 도구와 직접 통합하기 위해:
- sse - 브라우저 및 네트워크 클라이언트용:
명령줄 옵션
옵션 | 설명 | 기본 |
---|---|---|
데모 | 샘플 직원 데이터베이스로 데모 모드에서 실행 | false |
디에스엔 | 데이터베이스 연결 문자열 | 데모 모드가 아닌 경우 필요합니다. |
수송 | 전송 모드: stdio 또는 sse | stdio |
포트 | HTTP 서버 포트( --transport=sse 사용할 때만 적용 가능) | 8080 |
읽기 전용 | SQL 실행을 읽기 전용 작업으로 제한합니다. | false |
데모 모드에서는 직원, 부서, 직함, 급여, 부서 직원 및 부서 관리자에 대한 테이블이 포함된 샘플 직원 데이터베이스가 로드된 인메모리 SQLite 데이터베이스를 사용합니다. 샘플 데이터베이스에는 테이블 생성, 데이터 로드 및 테스트를 위한 SQL 스크립트가 포함되어 있습니다.
개발
- 종속성 설치:
- 개발 모드에서 실행:
- 프로덕션을 위해 빌드:
테스트
이 프로젝트에서는 테스트를 위해 Vitest를 사용합니다.
- 테스트 실행:
pnpm test
- 감시 모드에서 테스트 실행:
pnpm test:watch
사전 커밋 후크(개발자용)
이 프로젝트에는 각 커밋 전에 자동으로 테스트를 실행하기 위한 사전 커밋 후크가 포함되어 있습니다.
- 저장소를 복제한 후, 커밋 전 후크를 설정합니다.
- 이렇게 하면 커밋을 생성할 때마다 테스트 모음이 자동으로 실행되어 테스트를 중단시키는 커밋이 방지됩니다.
MCP Inspector 로 디버깅
stdio
남남동
DBHub 서버 /sse
엔드포인트에 연결합니다.
기여자
스타 역사
Related MCP Servers
- -securityAlicense-qualityMCP to access any database accessible via JDBC such as Postgres, Oracle, mysql, mariadb, sqlite etc.Last updated -129Apache 2.0
- -securityAlicense-qualityAn MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.Last updated -JavaScriptMIT License
- -securityAlicense-qualityMCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDBLast updated -402GoApache 2.0
- AsecurityAlicenseAqualityMCP server that allows interaction with PocketBase databases, enabling record operations (fetch, list, create, update), file management, and schema migrations through natural language.Last updated -208TypeScriptMIT License