Skip to main content
Glama

PyODBC를 통한 MCP 서버 ODBC

FastAPIpyodbc를 기반으로 구축된 ODBC용 경량 MCP(Model Context Protocol) 서버입니다. 이 서버는 Virtuoso DBMS 및 ODBC 드라이버가 있는 다른 DBMS 백엔드와 호환됩니다.

mcp-클라이언트-및-서버|648x499


특징

  • 스키마 가져오기 : 연결된 데이터베이스에서 모든 스키마 이름을 가져와 나열합니다.

  • 테이블 가져오기 : 특정 스키마 또는 모든 스키마에 대한 테이블 정보를 검색합니다.

  • 테이블 설명 : 다음을 포함하여 테이블 구조에 대한 자세한 설명을 생성합니다.

    • 열 이름 및 데이터 유형

    • Null 가능 속성

    • 기본 키와 외래 키

  • 테이블 검색 : 이름 하위 문자열을 기준으로 테이블을 필터링하고 검색합니다.

  • 저장 프로시저 실행 : Virtuoso의 경우 저장 프로시저를 실행하고 결과를 검색합니다.

  • 쿼리 실행 :

    • JSONL 결과 형식: 구조화된 응답에 최적화되었습니다.

    • 마크다운 테이블 형식: 보고 및 시각화에 이상적입니다.


Related MCP server: Multi Database MCP Server

필수 조건

  1. uv 설치 :

    지엑스피1

    또는 Homebrew를 사용하세요:

    brew install uv
  2. unixODBC 런타임 환경 검사 :

  3. odbcinst -j 실행하여 설치 구성(즉, 주요 INI 파일의 위치)을 확인하세요.

  4. odbcinst -q -s 실행하여 사용 가능한 데이터 소스 이름을 나열합니다.

  5. ODBC DSN 설정 : 대상 데이터베이스에 대한 ODBC 데이터 원본 이름( ~/.odbc.ini )을 구성합니다. Virtuoso DBMS의 경우:

    [VOS] Description = OpenLink Virtuoso Driver = /path/to/virtodbcu_r.so Database = Demo Address = localhost:1111 WideAsUTF16 = Yes

설치

이 저장소를 복제하세요:

git clone https://github.com/OpenLinkSoftware/mcp-pyodbc-server.git cd mcp-pyodbc-server

환경 변수

기본 설정을 사용자의 선호도에 맞게 재정의하여 .env 를 업데이트하세요.

ODBC_DSN=VOS ODBC_USER=dba ODBC_PASSWORD=dba API_KEY=xxx

구성

Claude Desktop 사용자의 경우: claude_desktop_config.json 에 다음을 추가하세요.

{ "mcpServers": { "my_database": { "command": "uv", "args": ["--directory", "/path/to/mcp-pyodbc-server", "run", "mcp-pyodbc-server"], "env": { "ODBC_DSN": "dsn_name", "ODBC_USER": "username", "ODBC_PASSWORD": "password", "API_KEY": "sk-xxx" } } } }

용법

제공된 도구

성공적으로 설치하면 MCP 클라이언트 애플리케이션에서 다음 도구를 사용할 수 있습니다.

개요

이름

설명

podbc_get_schemas

연결된 데이터베이스 관리 시스템(DBMS)에서 접근할 수 있는 데이터베이스 스키마를 나열합니다.

podbc_get_tables

선택한 데이터베이스 스키마와 연관된 테이블을 나열합니다.

포드비씨_설명_테이블

지정된 데이터베이스 스키마와 연결된 테이블에 대한 설명을 제공하세요. 여기에는 열 이름, 데이터 유형, Null 처리, 자동 증가, 기본 키 및 외래 키에 대한 정보가 포함됩니다.

포드bc_필터_테이블_이름

선택한 데이터베이스 스키마와 연관된

q

입력 필드의 하위 문자열 패턴을 기반으로 테이블을 나열합니다.

포드bc_쿼리_데이터베이스

SQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다.

podbc_execute_query

SQL 쿼리를 실행하고 결과를 JSONL 형식으로 반환합니다.

podbc_execute_query_md

SQL 쿼리를 실행하고 결과를 마크다운 테이블 형식으로 반환합니다.

podbc_spasql_query

SPASQL 쿼리를 실행하고 결과를 반환합니다.

podbc_sparql_query

SPARQL 쿼리를 실행하고 결과를 반환합니다.

포드비씨_거장_지원_AI

Virtuoso 지원 지원자/에이전트와 상호 작용 - LLM과 상호 작용하기 위한 Virtuoso 특정 기능

자세한 설명

  • podbc_get_schemas

    • 연결된 데이터베이스에서 모든 스키마 이름 목록을 검색하여 반환합니다.

    • 입력 매개변수:

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 스키마 이름의 JSON 문자열 배열을 반환합니다.

  • podbc_get_tables

    • 지정된 스키마의 테이블 정보가 포함된 목록을 검색하여 반환합니다. 스키마가 제공되지 않으면 연결의 기본 스키마를 사용합니다.

    • 입력 매개변수:

      • schema (문자열, 선택 사항): 테이블을 필터링할 데이터베이스 스키마입니다. 기본값은 연결 기본값입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 테이블 정보(예: TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE)를 포함하는 JSON 문자열을 반환합니다.

  • 포드bc_필터_테이블_이름

    • 이름에 특정 하위 문자열이 포함된 테이블에 대한 정보를 필터링하고 반환합니다.

    • 입력 매개변수:

      • q (문자열, 필수): 테이블 이름 내에서 검색할 하위 문자열입니다.

      • schema (문자열, 선택 사항): 테이블을 필터링할 데이터베이스 스키마입니다. 기본값은 연결 기본값입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 일치하는 테이블에 대한 정보가 포함된 JSON 문자열을 반환합니다.

  • 포드비씨_설명_테이블

    • 특정 테이블의 열에 대한 자세한 정보를 검색하여 반환합니다.

    • 입력 매개변수:

      • schema (문자열, 필수): 테이블이 포함된 데이터베이스 스키마 이름입니다.

      • table (문자열, 필수): 설명할 테이블의 이름입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 테이블의 열(예: COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, IS_NULLABLE)을 설명하는 JSON 문자열을 반환합니다.

  • 포드bc_쿼리_데이터베이스

    • 표준 SQL 쿼리를 실행하고 결과를 JSON 형식으로 반환합니다.

    • 입력 매개변수:

      • query (문자열, 필수): 실행할 SQL 쿼리 문자열입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 쿼리 결과를 JSON 문자열로 반환합니다.

  • 포드bc_쿼리_데이터베이스_md

    • 표준 SQL 쿼리를 실행하고 마크다운 테이블 형식으로 결과를 반환합니다.

    • 입력 매개변수:

      • query (문자열, 필수): 실행할 SQL 쿼리 문자열입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 쿼리 결과를 마크다운 테이블 문자열로 반환합니다.

  • podbc_query_database_jsonl

    • 표준 SQL 쿼리를 실행하고 JSON Lines(JSONL) 형식으로 결과를 반환합니다(줄당 JSON 개체 하나).

    • 입력 매개변수:

      • query (문자열, 필수): 실행할 SQL 쿼리 문자열입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 쿼리 결과를 JSONL 문자열로 반환합니다.

  • podbc_spasql_query

    • SPASQL(SQL/SPARQL 하이브리드) 쿼리를 실행하여 결과를 반환합니다. 이는 Virtuoso 전용 기능입니다.

    • 입력 매개변수:

      • query (문자열, 필수): SPASQL 쿼리 문자열입니다.

      • max_rows (숫자, 선택 사항): 반환할 최대 행 수입니다. 기본값은 20입니다.

      • timeout (숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은 30000입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 기본 저장 프로시저 호출(예: Demo.demo.execute_spasql_query )의 결과를 반환합니다.

  • podbc_sparql_query

    • SPARQL 쿼리를 실행하고 결과를 반환합니다. 이는 Virtuoso 전용 기능입니다.

    • 입력 매개변수:

      • query (문자열, 필수): SPARQL 쿼리 문자열.

      • format (문자열, 선택 사항): 원하는 결과 형식입니다. 기본값은 'json'입니다.

      • timeout (숫자, 선택 사항): 쿼리 시간 초과(밀리초). 기본값은 30000입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • 기본 함수 호출(예: "UB".dba."sparqlQuery" )의 결과를 반환합니다.

  • 포드비씨_거장_지원_AI

    • Virtuoso 전용 AI 어시스턴트 기능을 활용하여 프롬프트와 선택적 API 키를 전달합니다. 이는 Virtuoso 전용 기능입니다.

    • 입력 매개변수:

      • prompt (문자열, 필수): AI 함수에 대한 프롬프트 텍스트입니다.

      • api_key (문자열, 선택 사항): AI 서비스의 API 키입니다. 기본값은 "없음"입니다.

      • user (문자열, 선택 사항): 데이터베이스 사용자 이름입니다. 기본값은 "demo"입니다.

      • password (문자열, 선택 사항): 데이터베이스 비밀번호입니다. 기본값은 "demo"입니다.

      • dsn (문자열, 선택 사항): ODBC 데이터 원본 이름입니다. 기본값은 "Local Virtuoso"입니다.

    • AI Support Assistant 함수 호출(예: DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI )의 결과를 반환합니다.


문제 해결

더 쉽게 문제를 해결하려면 다음을 수행하세요.

  1. MCP 검사기 설치:

    npm install -g @modelcontextprotocol/inspector
  2. 검사기를 시작합니다.

    npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-pyodbc-server run mcp-pyodbc-server

제공된 URL에 접속하여 서버 상호작용 문제를 해결하세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenLinkSoftware/mcp-pyodbc-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server