Skip to main content
Glama

database-mcp

Servidor MCP multibase de datos (de Legion AI)

Un servidor que ayuda a las personas a acceder y consultar datos en bases de datos utilizando Legion Query Runner con integración del SDK de Python del Protocolo de contexto de modelo (MCP).

Comience la generación aquí

Esta herramienta es proporcionada por Legion AI . Para usar esta herramienta completa de análisis de datos de IA, visite el sitio web. Contáctenos si desea que le brindemos soporte para alguna base de datos.

Fin de la generación aquí

¿Por qué elegir la base de datos MCP?

La base de datos MCP se destaca de otras soluciones de acceso a bases de datos por varias razones convincentes:

  • Interfaz multibase de datos unificada : conéctese a PostgreSQL, MySQL, SQL Server y otras bases de datos a través de una única API consistente: no es necesario aprender diferentes bibliotecas de cliente para cada tipo de base de datos.
  • Integración lista para IA : diseñada específicamente para interacciones de asistentes de IA a través del Protocolo de contexto de modelo (MCP), lo que permite operaciones de bases de datos en lenguaje natural.
  • Descubrimiento de esquemas sin configuración : descubre y expone automáticamente esquemas de bases de datos sin configuración ni mapeo manual.
  • Herramientas independientes de la base de datos : busque tablas, explore esquemas y ejecute consultas con el mismo conjunto de herramientas independientemente de la tecnología de base de datos subyacente.
  • Gestión segura de credenciales : gestiona de forma segura los detalles de autenticación de la base de datos, separando las credenciales del código de la aplicación.
  • Implementación simple : funciona con entornos de desarrollo de IA modernos como LangChain, FastAPI y otros con una configuración mínima.
  • Diseño extensible : agregue fácilmente herramientas y avisos personalizados para mejorar la funcionalidad para casos de uso específicos.

Ya sea que esté creando agentes de IA que necesitan acceso a bases de datos o simplemente quiera una interfaz unificada para múltiples bases de datos, Database MCP proporciona una solución optimizada que reduce drásticamente el tiempo de desarrollo y la complejidad.

Características

  • Compatibilidad con múltiples bases de datos: conéctese a varias bases de datos simultáneamente
  • Acceso a la base de datos a través de Legion Query Runner
  • Compatibilidad del Protocolo de Contexto de Modelo (MCP) con asistentes de IA
  • Exponer las operaciones de la base de datos como recursos, herramientas y avisos de MCP
  • Múltiples opciones de implementación (servidor MCP independiente, integración FastAPI)
  • Ejecución de consultas y manejo de resultados
  • Configuración flexible a través de variables de entorno, argumentos de línea de comandos o configuración MCP JSON
  • Selección de bases de datos impulsada por el usuario para configuraciones de múltiples bases de datos

Bases de datos compatibles

Base de datosCódigo DB_TYPE
PostgreSQLpág.
Desplazamiento al rojocorrimiento al rojo
Base de datos de cucarachascucaracha
MySQLMySQL
RDS MySQLrds_mysql
Microsoft SQL Servermssql
Gran consultaBigQuery
Base de datos Oracleoráculo
SQLitesqlite

Usamos la biblioteca Legion Query Runner como conectores. Puedes encontrar más información en su documentación de API .

¿Qué es MCP?

El Protocolo de Contexto de Modelo (MCP) es una especificación para mantener el contexto en aplicaciones de IA. Este servidor utiliza el SDK de Python de MCP para:

  • Exponer las operaciones de bases de datos como herramientas para los asistentes de IA
  • Proporcionar esquemas de bases de datos y metadatos como recursos
  • Generar indicaciones útiles para las operaciones de la base de datos
  • Habilitar interacciones con estado con bases de datos

Instalación y configuración

Parámetros requeridos

Para la configuración de una sola base de datos:

  • DB_TYPE : El código del tipo de base de datos (ver tabla anterior)
  • DB_CONFIG : una cadena de configuración JSON para la conexión a la base de datos

Para la configuración de múltiples bases de datos:

  • DB_CONFIGS : una matriz JSON de configuraciones de base de datos, cada una de las cuales contiene:
    • db_type : El código del tipo de base de datos
    • configuración : Configuración de la conexión a la base de datos
    • descripción : Una descripción legible por humanos de la base de datos

El formato de configuración varía según el tipo de base de datos. Consulte la documentación de la API para obtener información detallada sobre la configuración de cada base de datos.

Métodos de instalación

Opción 1: Uso de UV (recomendado)

Al usar uv , no se requiere una instalación específica. Usaremos uvx para ejecutar directamente database-mcp .

Ejemplo de configuración UV (base de datos única):

REPLACE DB_TYPE and DB_CONFIG with your connection info. { "mcpServers": { "database-mcp": { "command": "uvx", "args": [ "database-mcp" ], "env": { "DB_TYPE": "pg", "DB_CONFIG": "{\"host\":\"localhost\",\"port\":5432,\"user\":\"user\",\"password\":\"pw\",\"dbname\":\"dbname\"}" }, "disabled": true, "autoApprove": [] } } }

Ejemplo de configuración UV (varias bases de datos):

{ "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": [] } } }
Opción 2: Uso de PIP

Instalar mediante pip:

pip install database-mcp

Ejemplo de configuración de PIP (base de datos única):

{ "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\"}" } } } }

Ejecución del servidor

Modo de producción

python mcp_server.py

Métodos de configuración

Variables de entorno (base de datos única)
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
Variables de entorno (varias bases de datos)
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

Si no especifica un ID, el sistema generará uno automáticamente según el tipo de base de datos y la descripción:

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
Argumentos de la línea de comandos (base de datos única)
python mcp_server.py --db-type pg --db-config '{"host":"localhost","port":5432,"user":"username","password":"password","dbname":"database_name"}'
Argumentos de la línea de comandos (varias bases de datos)
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"}]'

Tenga en cuenta que puede especificar identificadores personalizados para cada base de datos utilizando el campo id o dejar que el sistema los genere según el tipo de base de datos y la descripción.

Compatibilidad con múltiples bases de datos

Al conectarse a varias bases de datos, debe especificar qué base de datos utilizar para cada consulta:

  1. Utilice la herramienta list_databases para ver las bases de datos disponibles con sus ID
  2. Utilice get_database_info para ver los detalles del esquema de las bases de datos
  3. Utilice find_table para localizar una tabla en todas las bases de datos
  4. Proporcione el parámetro db_id a herramientas como execute_query , get_table_columns , etc.

Las conexiones a bases de datos se gestionan internamente como un diccionario de objetos DbConfig , donde cada base de datos tiene un ID único. La información del esquema se representa como una lista de objetos de tabla, donde cada tabla contiene su nombre e información de columna.

El mensaje select_database guía a los usuarios a través del proceso de selección de la base de datos.

Representación del esquema

Los esquemas de base de datos se representan como una lista de objetos de tabla, y cada tabla contiene información sobre sus columnas:

[ { "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"} ] } ]

Esta representación facilita el acceso programático a la información de tablas y columnas manteniendo una estructura jerárquica limpia.

Capacidades MCP expuestas

Recursos

RecursoDescripción
resource://schema/{database_id}Obtener los esquemas para una o todas las bases de datos configuradas

Herramientas

HerramientaDescripción
execute_queryEjecutar una consulta SQL y devolver los resultados como una tabla de rebajas
execute_query_jsonEjecutar una consulta SQL y devolver los resultados como JSON
get_table_columnsObtener los nombres de las columnas de una tabla específica
get_table_typesObtener tipos de columnas para una tabla específica
get_query_historyObtener el historial de consultas recientes
list_databasesEnumere todas las conexiones de base de datos disponibles
get_database_infoObtenga información detallada sobre una base de datos, incluido el esquema
find_tableEncuentra qué base de datos contiene una tabla específica
describe_tableObtenga una descripción detallada de una tabla, incluidos los nombres y tipos de columnas
get_table_sampleObtener una muestra de datos de una tabla

Todas las herramientas específicas de la base de datos (como execute_query , get_table_columns , etc.) requieren un parámetro db_id para especificar qué base de datos utilizar.

Indicaciones

InmediatoDescripción
sql_queryCrear una consulta SQL contra la base de datos
explain_queryExplicar qué hace una consulta SQL
optimize_queryOptimizar una consulta SQL para un mejor rendimiento
select_databaseAyudar al usuario a seleccionar qué base de datos utilizar

Desarrollo

Uso del inspector MCP

Ejecute esto para iniciar el inspector

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

Luego, en el campo de entrada de comando, configure algo como

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

Pruebas

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

Publicación

# 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/*

Licencia

Este repositorio está licenciado bajo 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.

Un servidor que facilita el acceso y la consulta de datos en bases de datos mediante Query Runner, con integración del SDK de Python del Protocolo de Contexto de Modelo (MCP). Con el apoyo del equipo de Legion AI (thelegionai.com).

Bases de datos compatibles, incluidas PostgreSQL, Redshift, MySQL, Microsoft SQL Server, API de Google, Amazon Web Services (a través de boto3), CockroachDB, SQLite

  1. Comience la generación aquí
    1. Fin de la generación aquí
      1. ¿Por qué elegir la base de datos MCP?
      2. Características
      3. Bases de datos compatibles
      4. ¿Qué es MCP?
      5. Instalación y configuración
      6. Ejecución del servidor
      7. Compatibilidad con múltiples bases de datos
      8. Representación del esquema
      9. Capacidades MCP expuestas
      10. Desarrollo
      11. Licencia

    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