Skip to main content
Glama
arturborycki

Teradata MCP Server

by arturborycki

Teradata MCPサーバー

OAuth 2.1認証、複数の認証メカニズム(TD2、LDAP、Kerberos)、およびインタラクティブなデータ可視化機能を備えたTeradataデータベース用Model Context Protocol (MCP) サーバーです。

機能

  • 複数の認証メカニズム — TD2(デフォルト)、LDAP、Kerberos、Teradata LOGMECH を介したJWT

  • OAuth 2.1 — Keycloak統合、JWT検証、スコープベースの認可

  • 保護されたリソースメタデータ (RFC 9728準拠)

  • インタラクティブな可視化 — 19種類のチャートタイプを備えたEChartsベースのMCPアプリ

  • 接続の回復力 — 指数バックオフによる自動再試行

  • ノンブロッキングI/O — すべてのDB操作は asyncio.to_thread() を介して実行

  • ツールごとのQueryBand — Teradataワークロード管理のための監査証跡

ツール

クエリツール

  • query — SQLクエリを実行し、プレーンな表形式の結果を返す

  • visualize_query — SQLを実行し、MCPアプリを介してインタラクティブなEChartsチャートをレンダリングする

スキーマツール

  • list_db — すべてのデータベースを一覧表示する

  • list_tables — データベース内のテーブル/ビューを一覧表示する

  • show_tables_details — テーブルの列名と型を表示する

分析ツール

  • list_missing_values — NULL値のカウントを持つ列

  • list_negative_values — 負の値のカウントを持つ列

  • list_distinct_values — 列ごとの個別のカテゴリカウント

  • standard_deviation — 列の平均値と標準偏差

MCPアプリ — インタラクティブな可視化

visualize_query ツールは、MCPクライアント内で結果をインタラクティブなチャートとしてレンダリングします。

カテゴリ

チャート

棒グラフ

基本、グループ化、積み上げ、横棒、ソート済み、ウォーターフォール、角丸、極座標

折れ線グラフ

基本、滑らか、エリア、積み上げエリア、ステップ

円グラフ

円、ドーナツ、ローズ / ナイチンゲール

散布図

散布図、バブル

混合

棒グラフ + 折れ線グラフ

クイックスタート

インストール

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

TD2(標準認証)で実行

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

または環境変数経由:

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

設定

Claude Desktop

claude_desktop_config.json に追加します:

TD2(ユーザー名/パスワード)

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

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

authcid の形式はLDAPディレクトリによって異なります:

ディレクトリ

形式

Active Directory (Simple Bind)

authcid=user@domain.com

Active Directory (DIGEST-MD5)

authcid=DOMAIN\username

OpenLDAP / Sun DS

authcid=username

Kerberos認証

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

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

環境変数

データベース接続

変数

説明

デフォルト

DATABASE_URI

Teradata接続URL (teradatasql://user:pass@host/db)

DB_LOGMECH

認証メカニズム: TD2, LDAP, KRB5, TDNEGO, JWT

TD2

DB_LOGDATA

LDAP/JWT認証情報 (例: authcid=user password=pass)

DB_SSL_MODE

TLSモード: ALLOW, PREFER, REQUIRE, VERIFY-CA, VERIFY-FULL

DB_ENCRYPT_DATA

トランスポート暗号化を有効にする

true

接続の回復力

変数

説明

デフォルト

DB_MAX_RETRIES

最大再接続試行回数

3

DB_INITIAL_BACKOFF

初回バックオフ遅延(秒)

1.0

DB_MAX_BACKOFF

最大バックオフ遅延(秒)

30.0

MCPトランスポート

変数

説明

デフォルト

MCP_TRANSPORT

トランスポート: stdio, sse, streamable-http

stdio

MCP_HOST

HTTPトランスポートのバインドアドレス

localhost

MCP_PORT

HTTPトランスポートのポート

8000

MCP_PATH

streamable-httpのパス

/mcp/

OAuth 2.1

変数

説明

デフォルト

OAUTH_ENABLED

OAuth認証を有効にする

false

KEYCLOAK_URL

KeycloakサーバーURL

KEYCLOAK_REALM

Keycloakレルム名

KEYCLOAK_CLIENT_ID

OAuthクライアントID

KEYCLOAK_CLIENT_SECRET

OAuthクライアントシークレット

OAUTH_RESOURCE_SERVER_URL

リソースサーバーURL

OAUTH_REQUIRED_SCOPES

必要なスコープ(カンマ区切り)

OAUTH_VALIDATE_AUDIENCE

トークンのオーディエンスを検証する

true

OAUTH_VALIDATE_SCOPES

トークンのスコープを検証する

true

OAUTH_REQUIRE_HTTPS

OAuth URLにHTTPSを要求する

true

CORS_ALLOWED_ORIGINS

CORS許可オリジン

*

OAuthスコープ

スコープ

説明

teradata:read

データベースリソースへの読み取りアクセス

teradata:write

データベースリソースへの書き込みアクセス

teradata:query

SQLクエリの実行

teradata:admin

管理アクセス

teradata:schema

スキーマ管理操作

トランスポートの互換性

トランスポート

OAuth

検出エンドポイント

ユースケース

stdio

N/A

N/A

Claude Desktop, CLIクライアント

SSE

フル

利用可能

Webアプリケーション

Streamable HTTP

フル

利用可能

API統合

検出エンドポイント(OAuth有効時):

  • /.well-known/oauth-protected-resource — RFC 9728メタデータ

  • /.well-known/mcp-server-info — MCP機能

  • /health — ヘルスチェック

Dockerデプロイメント

開発

docker compose up -d

OAuth使用時

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

ビルド

uv build

トラブルシューティング

データベース接続の問題:

  • DATABASE_URI の形式を確認: teradatasql://user:pass@host/database

  • Teradataサーバーへのネットワーク接続を確認

  • LDAPの場合: DB_LOGMECH=LDAPDB_LOGDATA が正しく設定されていることを確認

  • 接続の問題は自動的に再試行されます(DB_MAX_RETRIES で設定可能)

LDAP認証の失敗:

  • TeradataサーバーのTDGSSでLDAPが設定されていることを確認

  • authcid の形式がディレクトリタイプと一致していることを確認

  • パスワード内の特殊文字をエスケープする (@\@, スペース → クォーテーションを使用)

権限拒否エラー:

  • ユーザーが必要なOAuthスコープを持っていることを確認

  • Keycloakのロール割り当てを確認

  • visualize_query には teradata:query スコープが必要です(teradata:read だけでは不十分です)

デバッグログ:

export LOG_LEVEL=DEBUG
uv run teradata-mcp

ライセンス

MITライセンス。詳細は LICENSE を参照してください。

謝辞

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