Teradata MCP Server
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
LOGMECHde TeradataOAuth 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 simplesvisualize_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 datoslist_tables— Listar tablas/vistas en una base de datosshow_tables_details— Mostrar nombres de columnas y tipos para una tabla
Herramientas de análisis
list_missing_values— Columnas con recuentos de valores NULLlist_negative_values— Columnas con recuentos de valores negativoslist_distinct_values— Recuentos de categorías distintas por columnastandard_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 syncEjecutar 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-mcpConfiguració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) |
|
Active Directory (DIGEST-MD5) |
|
OpenLDAP / Sun DS |
|
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 |
| URL de conexión a Teradata ( | — |
| Mecanismo de autenticación: |
|
| Credenciales LDAP/JWT (ej. | — |
| Modo TLS: | — |
| Habilitar cifrado de transporte |
|
Resiliencia de conexión
Variable | Descripción | Predeterminado |
| Intentos máximos de reconexión |
|
| Retraso inicial de retroceso (segundos) |
|
| Retraso máximo de retroceso (segundos) |
|
Transporte MCP
Variable | Descripción | Predeterminado |
| Transporte: |
|
| Dirección de enlace para transportes HTTP |
|
| Puerto para transportes HTTP |
|
| Ruta para streamable-http |
|
OAuth 2.1
Variable | Descripción | Predeterminado |
| Habilitar autenticación OAuth |
|
| URL del servidor Keycloak | — |
| Nombre del reino de Keycloak | — |
| ID de cliente OAuth | — |
| Secreto de cliente OAuth | — |
| URL del servidor de recursos | — |
| Ámbitos requeridos (separados por comas) | — |
| Validar audiencia del token |
|
| Validar ámbitos del token |
|
| Requerir HTTPS para URLs OAuth |
|
| Orígenes permitidos por CORS |
|
Ámbitos de OAuth
Ámbito | Descripción |
| Acceso de lectura a recursos de base de datos |
| Acceso de escritura a recursos de base de datos |
| Ejecutar consultas SQL |
| Acceso administrativo |
| 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 -dCon OAuth
docker compose -f docker-compose.oauth.yml up -dConstrucción
uv buildSolución de problemas
Problemas de conexión a la base de datos:
Verifique el formato de
DATABASE_URI:teradatasql://user:pass@host/databaseCompruebe la conectividad de red con el servidor Teradata
Para LDAP: asegúrese de que
DB_LOGMECH=LDAPyDB_LOGDATAestén configurados correctamenteLos 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
authcidcoincida con su tipo de directorioEscape 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_queryrequiere el ámbitoteradata:query(no soloteradata:read)
Registro de depuración:
export LOG_LEVEL=DEBUG
uv run teradata-mcpLicencia
Licencia MIT. Consulte LICENSE para obtener más detalles.
Agradecimientos
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