JDBC를 위한 Java 기반 모델 컨텍스트 프로토콜(MCP) 서버
Quakrus 로 구축된 JDBC용 경량 MCP(Model Context Protocol) 서버입니다. 이 서버는 Virtuoso DBMS 및 JDBC 드라이버가 있는 다른 DBMS 백엔드와 호환됩니다.

특징
스키마 가져오기 : 연결된 데이터베이스에서 모든 스키마 이름을 가져와 나열합니다.
테이블 가져오기 : 특정 스키마 또는 모든 스키마에 대한 테이블 정보를 검색합니다.
테이블 설명 : 다음을 포함하여 테이블 구조에 대한 자세한 설명을 생성합니다.
열 이름 및 데이터 유형
Null 가능 속성
기본 키와 외래 키
테이블 검색 : 이름 하위 문자열을 기준으로 테이블을 필터링하고 검색합니다.
저장 프로시저 실행 : Virtuoso 전용 기능입니다! 저장 프로시저를 실행하고 결과를 가져옵니다.
쿼리 실행 :
JSONL 결과 형식: 구조화된 응답에 최적화되었습니다.
마크다운 테이블 형식: 보고 및 시각화에 이상적입니다.
Related MCP server: Joomla MCP Server
필수 조건
MCP 서버에는 Java 21 이상이 필요합니다.
설치
이 저장소를 복제하세요:
지엑스피1
환경 변수
다음 기본값을 재정의하여 선호도에 맞게 .env 를 업데이트하세요.
구성
Claude Desktop 사용자의 경우: claude_desktop_config.json 에 다음을 추가하세요.
다른 JDBC 드라이버나 드라이버 조합을 사용하는 Claude Desktop 사용자의 경우: claude_desktop_config.json 에 다음을 추가하세요.
사용
제공된 도구
성공적으로 설치하면 MCP 클라이언트 애플리케이션에서 다음 도구를 사용할 수 있습니다.
개요
이름 | 설명 |
| 연결된 데이터베이스 관리 시스템(DBMS)에서 접근할 수 있는 데이터베이스 스키마를 나열합니다. |
| 선택한 데이터베이스 스키마와 연관된 테이블을 나열합니다. |
| 지정된 데이터베이스 스키마와 연결된 테이블에 대한 설명을 제공하세요. 여기에는 열 이름, 데이터 유형, Null 처리, 자동 증가, 기본 키 및 외래 키에 대한 정보가 포함됩니다. |
| 선택한 데이터베이스 스키마와 연관된 |
| SQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다. |
| SQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다. |
| SQL 쿼리를 실행하고 결과를 마크다운 테이블 형식으로 반환합니다. |
| Virtuoso 전용 기능! SPASQL 쿼리를 실행하고 결과를 반환합니다. |
| Virtuoso 전용 기능! SPARQL 쿼리를 실행하고 결과를 반환합니다. |
| Virtuoso 전용 기능! Virtuoso 지원 지원/에이전트를 통해 LLM과 소통하세요. |
자세한 설명
jdbc_get_schemas연결된 데이터베이스에서 모든 스키마 이름 목록을 검색하여 반환합니다.
입력 매개변수:
user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
스키마 이름의 JSON 문자열 배열을 반환합니다.
jdbc_get_tables지정된 스키마의 테이블 정보가 포함된 목록을 검색하여 반환합니다. 스키마가 제공되지 않으면 연결의 기본 스키마를 사용합니다.
입력 매개변수:
schema(문자열, 선택 사항): 테이블을 필터링할 데이터베이스 스키마입니다. 기본값은 연결 기본값입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
테이블 정보(예:
TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE)를 포함하는 JSON 문자열을 반환합니다.
jdbc_filter_table_names이름에 특정 하위 문자열이 포함된 테이블에 대한 정보를 필터링하고 반환합니다.
입력 매개변수:
q(문자열, 필수): 테이블 이름 내에서 검색할 하위 문자열입니다.schema(문자열, 선택 사항): 테이블을 필터링할 데이터베이스 스키마입니다. 기본값은 연결 기본값입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
일치하는 테이블에 대한 정보가 포함된 JSON 문자열을 반환합니다.
jdbc_describe_table특정 테이블의 열에 대한 자세한 정보를 검색하여 반환합니다.
입력 매개변수:
schema(문자열, 필수): 테이블이 포함된 데이터베이스 스키마 이름입니다.table(문자열, 필수): 설명할 테이블의 이름입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
테이블의 열(예:
COLUMN_NAME,TYPE_NAME,COLUMN_SIZE,IS_NULLABLE)을 설명하는 JSON 문자열을 반환합니다.
jdbc_query_database표준 SQL 쿼리를 실행하고 결과를 JSON 형식으로 반환합니다.
입력 매개변수:
query(문자열, 필수): 실행할 SQL 쿼리 문자열입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
쿼리 결과를 JSON 문자열로 반환합니다.
jdbc_query_database_md표준 SQL 쿼리를 실행하고 마크다운 테이블 형식으로 결과를 반환합니다.
입력 매개변수:
query(문자열, 필수): 실행할 SQL 쿼리 문자열입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
쿼리 결과를 마크다운 테이블 문자열로 반환합니다.
jdbc_query_database_jsonl표준 SQL 쿼리를 실행하고 JSON Lines(JSONL) 형식으로 결과를 반환합니다(줄당 JSON 개체 하나).
입력 매개변수:
query(문자열, 필수): 실행할 SQL 쿼리 문자열입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
쿼리 결과를 JSONL 문자열로 반환합니다.
jdbc_spasql_queryVirtuoso 전용 기능!
SPASQL(SQL/SPARQL 하이브리드) 쿼리를 실행하여 결과를 반환합니다.
입력 매개변수:
query(문자열, 필수): SPASQL 쿼리 문자열입니다.max_rows(숫자, 선택 사항): 반환할 최대 행 수입니다. 기본값은20입니다.timeout(숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은30000(즉, 30초)입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
기본 저장 프로시저 호출(예:
Demo.demo.execute_spasql_query)의 결과를 반환합니다.
jdbc_sparql_queryVirtuoso 전용 기능!
SPARQL 쿼리를 실행하고 결과를 반환합니다.
입력 매개변수:
query(문자열, 필수): SPARQL 쿼리 문자열.format(문자열, 선택 사항): 원하는 결과 형식입니다. 기본값은'json'입니다.timeout(숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은30000(즉, 30초)입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
기본 함수 호출(예:
"UB".dba."sparqlQuery")의 결과를 반환합니다.
jdbc_virtuoso_support_aiVirtuoso 전용 기능!
Virtuoso 전용 AI 어시스턴트 기능을 활용하여 프롬프트와 선택적 API 키를 전달합니다.
입력 매개변수:
prompt(문자열, 필수): AI 함수에 대한 프롬프트 텍스트입니다.api_key(문자열, 선택 사항): AI 서비스의 API 키입니다. 기본값은"none"입니다.user(문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은"demo"입니다.password(문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은"demo"입니다.url(문자열, 선택 사항): JDBC URL 연결 문자열.
AI Support Assistant 함수 호출(예:
DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI)의 결과를 반환합니다.
기본 사용 및 문제 해결
Virtuoso의 ODBC 드라이버에 연결하는 MCP Inspector
기본적인 MCP 클라이언트 사용 및 문제 해결을 위해 다음과 같이 MCP Inspector를 사용하세요.
MCP 검사기 설치:
npm install -g @modelcontextprotocol/inspector검사기를 시작합니다.
npx @modelcontextprotocol/inspector java -jar /path/to/mcp-jdbc-server/MCPServer-1.0.0-runner.jar
검사자가 반환한 URL에 접근하여 MCP 서버 상호작용 문제를 해결합니다.
MCP 검사기가 추가 드라이버에 연결됨
기본적인 MCP 클라이언트 사용 및 문제 해결을 위해 다음과 같이 MCP Inspector를 사용하세요.
JDBC 드라이버를 설치하고, 해당 JAR 파일이
$CLASSPATH통해 호스트 운영 체제의 Java Virtual Machine(JVM)에 등록되었는지 확인하세요. 예를 들면 다음과 같습니다.export CLASSPATH=$CLASSPATH:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar다음 명령줄 인수를 사용하여 검사기를 시작합니다.
npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/driver1.jar:/path/to/driver2.jar:/path/to/driverN.jar io.quarkus.runner.GeneratedMain
Oracle 및 Informix 드라이버 기반 예제 사용
다음과 같은 JDBC 드라이버 정보를 가정합니다.
Oracle JDBC 드라이버 URL 템플릿
jdbc:oracle:thin:@<hostname>:[port]:<SERVICEID>Informix JDBC 드라이버 URL 템플릿
jdbc:informix-sqli://<hostname>:<port>/<database></database>:<INFORMIXSERVER>=<SERVICEID>
Oracle(
ojdbc17.jar) 및/또는 Informix(jdbc-15.0.0.1.1.jar) JDBC 드라이버를 설치하고, 해당 JAR 파일이$CLASSPATH통해 호스트 운영 체제의 Java Virtual Machine(JVM)에 등록되어 있는지 확인하세요. 예를 들면 다음과 같습니다.export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar export CLASSPATH=$CLASSPATH:/path/to/Java/Extensions/ojdbc17.jar다음 명령줄 인수를 사용하여 검사기를 시작합니다.
npx @modelcontextprotocol/inspector java -cp MCPServer-1.0.0-runner.jar:/path/to/Java/Extensions/ojdbc17.jar:/path/to/Java/Extensions/jdbc-15.0.0.1.1.jar io.quarkus.runner.GeneratedMain검사기에서 반환된 URL에 액세스한 다음
jdbc_execute_query작업을 사용하여 다음 입력 필드 템플릿에 대한 실제 값을 제공하여 대상 데이터베이스를 쿼리합니다.JDBC URL
사용자
비밀번호
질문