Skip to main content
Glama

database-mcp

다중 데이터베이스 MCP 서버(Legion AI 제공)

Legion Query Runner와 Model Context Protocol(MCP) Python SDK를 통합하여 데이터베이스의 데이터에 액세스하고 쿼리하는 데 도움이 되는 서버입니다.

여기에서 세대를 시작하세요

이 도구는 Legion AI 에서 제공합니다. 모든 기능을 갖춘 AI 데이터 분석 도구를 사용하려면 해당 사이트를 방문하세요. 지원을 원하는 데이터베이스가 있으면 이메일로 문의해 주세요.

여기서 세대를 끝내세요

데이터베이스 MCP를 선택해야 하는 이유

데이터베이스 MCP는 여러 가지 매력적인 이유로 다른 데이터베이스 액세스 솔루션과 차별화됩니다.

  • 통합된 다중 데이터베이스 인터페이스 : 일관된 단일 API를 통해 PostgreSQL, MySQL, SQL Server 및 기타 데이터베이스에 연결합니다. 각 데이터베이스 유형에 대해 다른 클라이언트 라이브러리를 배울 필요가 없습니다.
  • AI 지원 통합 : 모델 컨텍스트 프로토콜(MCP)을 통한 AI 보조 상호작용을 위해 특별히 구축되어 자연어 데이터베이스 작업이 가능합니다.
  • 구성 없는 스키마 검색 : 수동 구성이나 매핑 없이 데이터베이스 스키마를 자동으로 검색하고 노출합니다.
  • 데이터베이스에 독립적인 도구 : 기본 데이터베이스 기술에 관계없이 동일한 도구 세트를 사용하여 테이블을 찾고, 스키마를 탐색하고, 쿼리를 실행합니다.
  • 보안 자격 증명 관리 : 자격 증명을 애플리케이션 코드에서 분리하여 데이터베이스 인증 세부 정보를 안전하게 처리합니다.
  • 간단한 배포 : 최소한의 설정으로 LangChain, FastAPI 등의 최신 AI 개발 환경에서 작동합니다.
  • 확장 가능한 디자인 : 특정 사용 사례에 맞춰 기능을 향상시키기 위해 사용자 정의 도구와 프롬프트를 쉽게 추가할 수 있습니다.

데이터베이스 액세스가 필요한 AI 에이전트를 구축하든, 여러 데이터베이스에 대한 통합 인터페이스를 원하든, Database MCP는 개발 시간과 복잡성을 획기적으로 줄여주는 간소화된 솔루션을 제공합니다.

특징

  • 다중 데이터베이스 지원 - 여러 데이터베이스에 동시에 연결
  • Legion Query Runner를 통한 데이터베이스 액세스
  • AI 어시스턴트를 위한 MCP(모델 컨텍스트 프로토콜) 지원
  • 데이터베이스 작업을 MCP 리소스, 도구 및 프롬프트로 노출
  • 다양한 배포 옵션(독립형 MCP 서버, FastAPI 통합)
  • 쿼리 실행 및 결과 처리
  • 환경 변수, 명령줄 인수 또는 MCP 설정 JSON을 통한 유연한 구성
  • 다중 데이터베이스 설정을 위한 사용자 중심 데이터베이스 선택

지원되는 데이터베이스

데이터 베이스DB_TYPE 코드
포스트그레스큐엘페이지
적색편이적색편이
바퀴벌레DB바퀴벌레
MySQLMySQL
RDS MySQLrds_mysql
마이크로소프트 SQL 서버MSSQL
빅 쿼리빅쿼리
오라클 DB신탁
SQLiteSQLite

Legion Query Runner 라이브러리를 커넥터로 사용합니다. 자세한 내용은 API 문서 에서 확인하실 수 있습니다.

MCP란 무엇인가요?

모델 컨텍스트 프로토콜(MCP)은 AI 애플리케이션에서 컨텍스트를 유지하기 위한 사양입니다. 이 서버는 MCP Python SDK를 사용하여 다음을 수행합니다.

  • AI 어시스턴트를 위한 도구로서 데이터베이스 작업을 공개합니다.
  • 데이터베이스 스키마와 메타데이터를 리소스로 제공합니다.
  • 데이터베이스 작업에 유용한 프롬프트를 생성합니다.
  • 데이터베이스와의 상태 저장 상호 작용 활성화

설치 및 구성

필수 매개변수

단일 데이터베이스 구성의 경우:

  • DB_TYPE : 데이터베이스 유형 코드(위 표 참조)
  • DB_CONFIG : 데이터베이스 연결을 위한 JSON 구성 문자열

다중 데이터베이스 구성의 경우:

  • DB_CONFIGS : 다음을 포함하는 데이터베이스 구성의 JSON 배열:
    • db_type : 데이터베이스 유형 코드
    • 구성 : 데이터베이스 연결 구성
    • 설명 : 데이터베이스에 대한 사람이 읽을 수 있는 설명

구성 형식은 데이터베이스 유형에 따라 다릅니다. 데이터베이스별 구성에 대한 자세한 내용은 API 문서를 참조하세요.

설치 방법

옵션 1: UV 사용(권장)

uv 사용하면 별도의 설치가 필요하지 않습니다. uvx 사용하여 database-mcp를 직접 실행합니다.

UV 구성 예(단일 데이터베이스):

지엑스피1

UV 구성 예(여러 데이터베이스):

{ "mcpServers": { "database-mcp": { "command": "uvx", "args": [ "database-mcp" ], "env": { "DB_CONFIGS": "[{\"id\":\"pg_main\",\"db_type\":\"pg\",\"configuration\":{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"postgres\"},\"description\":\"PostgreSQL Database\"},{\"id\":\"mysql_data\",\"db_type\":\"mysql\",\"configuration\":{\"host\":\"localhost\",\"port\":3306,\"user\":\"root\",\"password\":\"pass\",\"database\":\"mysql\"},\"description\":\"MySQL Database\"}]" }, "disabled": true, "autoApprove": [] } } }
옵션 2: PIP 사용

pip를 통해 설치:

pip install database-mcp

PIP 구성 예(단일 데이터베이스):

{ "mcpServers": { "database": { "command": "python", "args": [ "-m", "database_mcp", "--repository", "path/to/git/repo" ], "env": { "DB_TYPE": "pg", "DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}" } } } }

서버 실행

생산 모드

python mcp_server.py

구성 방법

환경 변수(단일 데이터베이스)
export DB_TYPE="pg" # or mysql, postgresql, etc. export DB_CONFIG='{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}' uv run src/database_mcp/mcp_server.py
환경 변수(여러 데이터베이스)
export DB_CONFIGS='[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]' uv run src/database_mcp/mcp_server.py

ID를 지정하지 않으면 시스템이 데이터베이스 유형과 설명을 기반으로 자동으로 ID를 생성합니다.

export DB_CONFIGS='[{"db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]' # IDs will be generated as something like "pg_postgres_0" and "my_mysqldb_1" uv run src/database_mcp/mcp_server.py
명령줄 인수(단일 데이터베이스)
python mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
명령줄 인수(여러 데이터베이스)
python mcp_server.py --db-configs '[{"id":"pg_main","db_type":"pg","configuration":{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"},"description":"PostgreSQL Database"},{"id":"mysql_users","db_type":"mysql","configuration":{"host":"localhost","port":3306,"user":"root","password":"pass","database":"mysql"},"description":"MySQL Database"}]'

id 필드를 사용하여 각 데이터베이스에 대한 사용자 정의 ID를 지정하거나, 데이터베이스 유형 및 설명에 따라 시스템에서 생성하도록 할 수 있습니다.

다중 데이터베이스 지원

여러 데이터베이스에 연결하는 경우 각 쿼리에 사용할 데이터베이스를 지정해야 합니다.

  1. list_databases 도구를 사용하여 사용 가능한 데이터베이스와 해당 ID를 확인하세요.
  2. get_database_info 사용하여 데이터베이스의 스키마 세부 정보를 확인하세요.
  3. find_table 사용하여 모든 데이터베이스에서 테이블을 찾습니다.
  4. execute_query , get_table_columns 등의 도구에 db_id 매개변수를 제공합니다.

데이터베이스 연결은 내부적으로 DbConfig 객체 사전으로 관리되며, 각 데이터베이스는 고유한 ID를 갖습니다. 스키마 정보는 테이블 객체 목록으로 표현되며, 각 테이블에는 이름과 열 정보가 포함됩니다.

select_database 프롬프트는 사용자에게 데이터베이스 선택 과정을 안내합니다.

스키마 표현

데이터베이스 스키마는 각 테이블에 해당 열에 대한 정보가 포함된 테이블 개체 목록으로 표현됩니다.

[ { "name": "users", "columns": [ {"name": "id", "type": "integer"}, {"name": "username", "type": "varchar"}, {"name": "email", "type": "varchar"} ] }, { "name": "orders", "columns": [ {"name": "id", "type": "integer"}, {"name": "user_id", "type": "integer"}, {"name": "product_id", "type": "integer"}, {"name": "quantity", "type": "integer"} ] } ]

이 표현을 사용하면 계층적 구조를 깔끔하게 유지하면서 테이블과 열 정보에 프로그래밍 방식으로 쉽게 액세스할 수 있습니다.

노출된 MCP 기능

자원

의지설명
resource://schema/{database_id}구성된 데이터베이스 하나 또는 모두에 대한 스키마를 가져옵니다.

도구

도구설명
execute_querySQL 쿼리를 실행하고 결과를 마크다운 테이블로 반환합니다.
execute_query_jsonSQL 쿼리를 실행하고 결과를 JSON으로 반환합니다.
get_table_columns특정 테이블의 열 이름 가져오기
get_table_types특정 테이블의 열 유형 가져오기
get_query_history최근 쿼리 내역 가져오기
list_databases사용 가능한 모든 데이터베이스 연결 나열
get_database_info스키마를 포함한 데이터베이스에 대한 자세한 정보를 얻으세요
find_table특정 테이블이 포함된 데이터베이스 찾기
describe_table열 이름과 유형을 포함한 테이블에 대한 자세한 설명을 얻으세요
get_table_sample테이블에서 데이터 샘플 가져오기

모든 데이터베이스별 도구(예: execute_query , get_table_columns 등)에는 사용할 데이터베이스를 지정하는 db_id 매개변수가 필요합니다.

프롬프트

즉각적인설명
sql_query데이터베이스에 대한 SQL 쿼리를 만듭니다.
explain_querySQL 쿼리가 무엇을 하는지 설명하세요
optimize_query더 나은 성능을 위해 SQL 쿼리 최적화
select_database사용자가 사용할 데이터베이스를 선택하도록 도와주세요

개발

MCP Inspector 사용

이것을 실행하여 검사기를 시작하세요

npx @modelcontextprotocol/inspector uv run src/database_mcp/mcp_server.py

그런 다음 명령 입력 필드에 다음과 같이 설정합니다.

run src/database_mcp/mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'

테스트

uv pip install -e ".[dev]" pytest

출판

# Clean up build artifacts rm -rf dist/ build/ # Remove any .egg-info directories if they exist find . -name "*.egg-info" -type d -exec rm -rf {} + 2>/dev/null || true # Build the package uv run python -m build # Upload to PyPI uv run python -m twine upload dist/*

특허

이 저장소는 GPL 라이선스를 받았습니다.

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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Model Context Protocol(MCP) Python SDK와 통합된 Query Runner를 사용하여 데이터베이스의 데이터에 접근하고 쿼리할 수 있도록 지원하는 서버입니다. Legion AI 팀(thelegionai.com)의 지원을 받습니다.

PostgreSQL, Redshift, MySQL, Microsoft SQL Server, Google API, Amazon Web Services(boto3를 통해), CockroachDB, SQLite를 포함한 지원 데이터베이스

  1. 여기에서 세대를 시작하세요
    1. 여기서 세대를 끝내세요
      1. 데이터베이스 MCP를 선택해야 하는 이유
      2. 특징
      3. 지원되는 데이터베이스
      4. MCP란 무엇인가요?
      5. 설치 및 구성
      6. 서버 실행
      7. 다중 데이터베이스 지원
      8. 스키마 표현
      9. 노출된 MCP 기능
      10. 개발
      11. 특허

    Related MCP Servers

    • -
      security
      F
      license
      -
      quality
      A server that enables interaction with PostgreSQL, MySQL, MariaDB, or SQLite databases through Claude Desktop using natural language queries.
      Last updated -
      Python
    • -
      security
      A
      license
      -
      quality
      This is a Model Context Protocol (MCP) server for executing SQL queries against Databricks using the Statement Execution API. It enables AI assistants to directly query Databricks data warehouses, analyze database schemas, and retrieve query results in a structured format
      Last updated -
      9
      Python
      MIT License
      • Linux
      • Apple
    • -
      security
      A
      license
      -
      quality
      A Model Context Protocol server that provides Claude access to Turso-hosted LibSQL databases, enabling database table listing, schema retrieval, and SELECT query execution.
      Last updated -
      68
      5
      TypeScript
      MIT License
      • Apple
    • -
      security
      A
      license
      -
      quality
      An MCP server that enables MySQL database integration with Claude. You can execute SQL queries and manage database connections.
      Last updated -
      1
      Python
      MIT License
      • Apple

    View all related MCP servers

    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/TheRaLabs/legion-mcp'

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