Skip to main content
Glama
arturborycki

Teradata MCP Server

by arturborycki

Servidor MCP de Teradata

Un servidor del Protocolo de Contexto de Modelo (MCP) para bases de datos Teradata con autenticación OAuth 2.1, múltiples mecanismos de autenticación (TD2, LDAP, Kerberos) y visualización de datos interactiva.

Características

  • Múltiples mecanismos de autenticación — TD2 (predeterminado), LDAP, Kerberos, JWT mediante LOGMECH de Teradata

  • OAuth 2.1 con integración de Keycloak, validación de JWT, autorización basada en ámbitos (scopes)

  • Metadatos de recursos protegidos (conforme a RFC 9728)

  • Visualización interactiva — Aplicación MCP basada en ECharts con 19 tipos de gráficos

  • Resiliencia de conexión — reintento automático con retroceso exponencial

  • E/S no bloqueante — todas las operaciones de BD se ejecutan mediante asyncio.to_thread()

  • QueryBand por herramienta — registro de auditoría para la gestión de cargas de trabajo de Teradata

Herramientas

Herramientas de consulta

  • query — Ejecutar consultas SQL, devolver resultados tabulares simples

  • visualize_query — Ejecutar SQL y renderizar gráficos interactivos de ECharts mediante la aplicación MCP

Herramientas de esquema

  • list_db — Listar todas las bases de datos

  • list_tables — Listar tablas/vistas en una base de datos

  • show_tables_details — Mostrar nombres de columnas y tipos para una tabla

Herramientas de análisis

  • list_missing_values — Columnas con recuentos de valores NULL

  • list_negative_values — Columnas con recuentos de valores negativos

  • list_distinct_values — Recuentos de categorías distintas por columna

  • standard_deviation — Media y desviación estándar para una columna

Aplicación MCP — Visualización interactiva

La herramienta visualize_query renderiza los resultados como gráficos interactivos en el cliente MCP.

Categoría

Gráficos

Barras

Básico, Agrupado, Apilado, Horizontal, Ordenado, Cascada, Redondeado, Polar

Líneas

Básico, Suave, Área, Área apilada, Escalón

Circular

Circular, Anillo, Rosa / Nightingale

Dispersión

Dispersión, Burbuja

Mixto

Barras + Líneas

Inicio rápido

Instalación

git clone https://github.com/arturborycki/mcp-teradata.git
cd mcp-teradata
uv sync

Ejecutar con TD2 (Autenticación estándar)

uv run teradata-mcp "teradatasql://user:password@host/database"

O mediante variable de entorno:

export DATABASE_URI="teradatasql://user:password@host/database"
uv run teradata-mcp

Configuración

Claude Desktop

Añadir a su claude_desktop_config.json:

TD2 (Nombre de usuario/Contraseña)

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://user:password@host/database"
      }
    }
  }
}

Autenticación LDAP

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://@host/database",
        "DB_LOGMECH": "LDAP",
        "DB_LOGDATA": "authcid=ldap_user password=ldap_password"
      }
    }
  }
}

El formato authcid depende del directorio LDAP:

Directorio

Formato

Active Directory (Simple Bind)

authcid=user@domain.com

Active Directory (DIGEST-MD5)

authcid=DOMAIN\username

OpenLDAP / Sun DS

authcid=username

Autenticación Kerberos

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://@host/database",
        "DB_LOGMECH": "KRB5"
      }
    }
  }
}

Configuración habilitada para OAuth

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://user:password@host/database",
        "OAUTH_ENABLED": "true",
        "KEYCLOAK_URL": "https://your-keycloak.example.com",
        "KEYCLOAK_REALM": "teradata-realm",
        "KEYCLOAK_CLIENT_ID": "teradata-mcp",
        "KEYCLOAK_CLIENT_SECRET": "your-secret",
        "OAUTH_RESOURCE_SERVER_URL": "https://your-mcp-server.example.com"
      }
    }
  }
}

Variables de entorno

Conexión a base de datos

Variable

Descripción

Predeterminado

DATABASE_URI

URL de conexión a Teradata (teradatasql://user:pass@host/db)

DB_LOGMECH

Mecanismo de autenticación: TD2, LDAP, KRB5, TDNEGO, JWT

TD2

DB_LOGDATA

Credenciales LDAP/JWT (ej. authcid=user password=pass)

DB_SSL_MODE

Modo TLS: ALLOW, PREFER, REQUIRE, VERIFY-CA, VERIFY-FULL

DB_ENCRYPT_DATA

Habilitar cifrado de transporte

true

Resiliencia de conexión

Variable

Descripción

Predeterminado

DB_MAX_RETRIES

Intentos máximos de reconexión

3

DB_INITIAL_BACKOFF

Retraso inicial de retroceso (segundos)

1.0

DB_MAX_BACKOFF

Retraso máximo de retroceso (segundos)

30.0

Transporte MCP

Variable

Descripción

Predeterminado

MCP_TRANSPORT

Transporte: stdio, sse, streamable-http

stdio

MCP_HOST

Dirección de enlace para transportes HTTP

localhost

MCP_PORT

Puerto para transportes HTTP

8000

MCP_PATH

Ruta para streamable-http

/mcp/

OAuth 2.1

Variable

Descripción

Predeterminado

OAUTH_ENABLED

Habilitar autenticación OAuth

false

KEYCLOAK_URL

URL del servidor Keycloak

KEYCLOAK_REALM

Nombre del reino de Keycloak

KEYCLOAK_CLIENT_ID

ID de cliente OAuth

KEYCLOAK_CLIENT_SECRET

Secreto de cliente OAuth

OAUTH_RESOURCE_SERVER_URL

URL del servidor de recursos

OAUTH_REQUIRED_SCOPES

Ámbitos requeridos (separados por comas)

OAUTH_VALIDATE_AUDIENCE

Validar audiencia del token

true

OAUTH_VALIDATE_SCOPES

Validar ámbitos del token

true

OAUTH_REQUIRE_HTTPS

Requerir HTTPS para URLs OAuth

true

CORS_ALLOWED_ORIGINS

Orígenes permitidos por CORS

*

Ámbitos de OAuth

Ámbito

Descripción

teradata:read

Acceso de lectura a recursos de base de datos

teradata:write

Acceso de escritura a recursos de base de datos

teradata:query

Ejecutar consultas SQL

teradata:admin

Acceso administrativo

teradata:schema

Operaciones de gestión de esquemas

Compatibilidad de transporte

Transporte

OAuth

Puntos finales de descubrimiento

Caso de uso

stdio

N/A

N/A

Claude Desktop, clientes CLI

SSE

Completo

Disponible

Aplicaciones web

Streamable HTTP

Completo

Disponible

Integraciones API

Puntos finales de descubrimiento (cuando OAuth está habilitado):

  • /.well-known/oauth-protected-resource — Metadatos RFC 9728

  • /.well-known/mcp-server-info — Capacidades MCP

  • /health — Comprobación de estado

Despliegue en Docker

Desarrollo

docker compose up -d

Con OAuth

docker compose -f docker-compose.oauth.yml up -d

Construcción

uv build

Solución de problemas

Problemas de conexión a la base de datos:

  • Verifique el formato de DATABASE_URI: teradatasql://user:pass@host/database

  • Compruebe la conectividad de red con el servidor Teradata

  • Para LDAP: asegúrese de que DB_LOGMECH=LDAP y DB_LOGDATA estén configurados correctamente

  • Los problemas de conexión se reintentan automáticamente (configurable mediante DB_MAX_RETRIES)

La autenticación LDAP falla:

  • Verifique que el servidor Teradata tenga LDAP configurado en TDGSS

  • Compruebe que el formato authcid coincida con su tipo de directorio

  • Escape los caracteres especiales en las contraseñas (@\@, espacios → use comillas)

Errores de permiso denegado:

  • Verifique que el usuario tenga los ámbitos de OAuth requeridos

  • Compruebe las asignaciones de roles de Keycloak

  • visualize_query requiere el ámbito teradata:query (no solo teradata:read)

Registro de depuración:

export LOG_LEVEL=DEBUG
uv run teradata-mcp

Licencia

Licencia MIT. Consulte LICENSE para obtener más detalles.

Agradecimientos

Install Server
A
security – no known vulnerabilities
F
license - not found
B
quality - B tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/arturborycki/mcp-teradata'

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