mcpField
T
Teradata MCP Server

Teradata MCP Server

Local
github.com/arturboryckiDatabases9Updated 30w ago

About Teradata MCP Server

Teradata MCP Server gives MCP clients tools to query Teradata, inspect schemas, and analyze column values, with support for several authentication methods. It can also render query results as interactive charts.

Key features

  1. 01Run SQL queries and return tabular results
  2. 02List databases, tables, and column details
  3. 03Analyze missing, negative, and distinct values
  4. 04Calculate a column's mean and standard deviation
  5. 05Visualize query results with 19 chart types
  6. 06Support OAuth 2.1 and multiple database authentication methods

Use cases

  1. 01Query Teradata data from an MCP client
  2. 02Inspect table schemas and column types
  3. 03Review missing, negative, and category values
  4. 04Turn query results into interactive charts

MCP support

As an MCP server, it exposes SQL querying, schema browsing, data analysis, and chart visualization tools to clients. It supports stdio, SSE, and Streamable HTTP transports; OAuth 2.1 is available for HTTP transports.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

Teradata MCP Server

A Model Context Protocol (MCP) server for Teradata database with OAuth 2.1 authentication, multiple authentication mechanisms (TD2, LDAP, Kerberos), and interactive data visualization.

Features

  • Multiple Auth Mechanisms — TD2 (default), LDAP, Kerberos, JWT via Teradata LOGMECH
  • OAuth 2.1 with Keycloak integration, JWT validation, scope-based authorization
  • Protected Resource Metadata (RFC 9728 compliant)
  • Interactive Visualization — ECharts-based MCP App with 19 chart types
  • Connection Resilience — automatic retry with exponential backoff
  • Non-blocking I/O — all DB operations run via asyncio.to_thread()
  • Per-tool QueryBand — audit trail for Teradata workload management

Tools

Query Tools
  • query — Execute SQL queries, return plain tabular results
  • visualize_query — Execute SQL and render interactive ECharts charts via MCP App
Schema Tools
  • list_db — List all databases
  • list_tables — List tables/views in a database
  • show_tables_details — Show column names and types for a table
Analysis Tools
  • list_missing_values — Columns with NULL value counts
  • list_negative_values — Columns with negative value counts
  • list_distinct_values — Distinct category counts per column
  • standard_deviation — Mean and standard deviation for a column
MCP App — Interactive Visualization

The visualize_query tool renders results as interactive charts in the MCP client.

CategoryCharts
BarBasic, Grouped, Stacked, Horizontal, Sorted, Waterfall, Rounded, Polar
LineBasic, Smooth, Area, Stacked Area, Step
PiePie, Doughnut, Rose / Nightingale
ScatterScatter, Bubble
MixedBar + Line

Quick Start

Installation
git clone https://github.com/arturborycki/mcp-teradata.git
cd mcp-teradata
uv sync
Run with TD2 (Standard Authentication)
uv run teradata-mcp "teradatasql://user:password@host/database"

Or via environment variable:

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

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

TD2 (Username/Password)
{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://user:password@host/database"
      }
    }
  }
}
LDAP Authentication
{
  "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"
      }
    }
  }
}

The authcid format depends on the LDAP directory:

DirectoryFormat
Active Directory (Simple Bind)[email protected]
Active Directory (DIGEST-MD5)authcid=DOMAIN\username
OpenLDAP / Sun DSauthcid=username
Kerberos Authentication
{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://@host/database",
        "DB_LOGMECH": "KRB5"
      }
    }
  }
}
OAuth-Enabled Configuration
{
  "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"
      }
    }
  }
}
Environment Variables
Database Connection
VariableDescriptionDefault
DATABASE_URITeradata connection URL (teradatasql://user:pass@host/db)—
DB_LOGMECHAuthentication mechanism: TD2, LDAP, KRB5, TDNEGO, JWTTD2
DB_LOGDATALDAP/JWT credentials (e.g., authcid=user password=pass)—
DB_SSL_MODETLS mode: ALLOW, PREFER, REQUIRE, VERIFY-CA, VERIFY-FULL—
DB_ENCRYPT_DATAEnable transport encryptiontrue
Connection Resilience
VariableDescriptionDefault
DB_MAX_RETRIESMax reconnection attempts3
DB_INITIAL_BACKOFFInitial backoff delay (seconds)1.0
DB_MAX_BACKOFFMax backoff delay (seconds)30.0
MCP Transport
VariableDescriptionDefault
MCP_TRANSPORTTransport: stdio, sse, streamable-httpstdio
MCP_HOSTBind address for HTTP transportslocalhost
MCP_PORTPort for HTTP transports8000
MCP_PATHPath for streamable-http/mcp/
OAuth 2.1
VariableDescriptionDefault
OAUTH_ENABLEDEnable OAuth authenticationfalse
KEYCLOAK_URLKeycloak server URL—
KEYCLOAK_REALMKeycloak realm name—
KEYCLOAK_CLIENT_IDOAuth client ID—
KEYCLOAK_CLIENT_SECRETOAuth client secret—
OAUTH_RESOURCE_SERVER_URLResource server URL—
OAUTH_REQUIRED_SCOPESRequired scopes (comma-separated)—
OAUTH_VALIDATE_AUDIENCEValidate token audiencetrue
OAUTH_VALIDATE_SCOPESValidate token scopestrue
OAUTH_REQUIRE_HTTPSRequire HTTPS for OAuth URLstrue
CORS_ALLOWED_ORIGINSCORS allowed origins*
OAuth Scopes
ScopeDescription
teradata:readRead access to database resources
teradata:writeWrite access to database resources
teradata:queryExecute SQL queries
teradata:adminAdministrative access
teradata:schemaSchema management operations
Transport Compatibility
TransportOAuthDiscovery EndpointsUse Case
stdioN/AN/AClaude Desktop, CLI clients
SSEFullAvailableWeb applications
Streamable HTTPFullAvailableAPI integrations

Discovery endpoints (when OAuth enabled):

  • /.well-known/oauth-protected-resource — RFC 9728 metadata
  • /.well-known/mcp-server-info — MCP capabilities
  • /health — Health check

Docker Deployment

Development
docker compose up -d
With OAuth
docker compose -f docker-compose.oauth.yml up -d
Build
uv build

Troubleshooting

Database connection issues:

  • Verify DATABASE_URI format: teradatasql://user:pass@host/database
  • Check network connectivity to Teradata server
  • For LDAP: ensure DB_LOGMECH=LDAP and DB_LOGDATA are set correctly
  • Connection issues are automatically retried (configurable via DB_MAX_RETRIES)

LDAP authentication fails:

  • Verify the Teradata server has LDAP configured in TDGSS
  • Check authcid format matches your directory type
  • Escape special characters in passwords (@ → \@, spaces → use quotes)

Permission denied errors:

  • Verify user has required OAuth scopes
  • Check Keycloak role assignments
  • visualize_query requires teradata:query scope (not just teradata:read)

Debug logging:

export LOG_LEVEL=DEBUG
uv run teradata-mcp

License

MIT License. See LICENSE for details.

Acknowledgments

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.