mcpField
T
Teradata MCP Server

Teradata MCP Server

本地服务
github.com/arturborycki数据库930 周前更新

关于 Teradata MCP Server

Teradata MCP Server 将 Teradata 数据库查询、架构检查和数据分析能力提供给 MCP 客户端,并支持多种认证方式。它还可将 SQL 查询结果呈现为交互式图表。

主要功能

  1. 01执行 SQL 查询并返回表格结果
  2. 02列出数据库、表和列信息
  3. 03分析空值、负值及不同值
  4. 04计算列的均值和标准差
  5. 05以 19 种图表类型可视化查询结果
  6. 06支持 OAuth 2.1 和多种数据库认证

适用场景

  1. 01从 MCP 客户端查询 Teradata 数据
  2. 02检查数据库表结构和列类型
  3. 03分析列中的空值、负值与类别分布
  4. 04将查询结果转换为交互式图表

MCP 相关

作为 MCP 服务,它向客户端提供 SQL 查询、架构浏览、数据分析及图表可视化工具。支持 stdio、SSE 和 Streamable HTTP 传输;HTTP 传输可启用 OAuth 2.1。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Teradata MCP Server

用于 Teradata 数据库的模型上下文协议(MCP)服务,支持 OAuth 2.1 身份验证、多种身份验证机制(TD2、LDAP、Kerberos)和交互式数据可视化。

功能

  • 多种身份验证机制 — TD2(默认)、LDAP、Kerberos,以及通过 Teradata LOGMECH 实现的 JWT
  • OAuth 2.1,集成 Keycloak、支持 JWT 验证和基于范围的授权
  • 受保护资源元数据(符合 RFC 9728)
  • 交互式可视化 — 基于 ECharts 的 MCP App,支持 19 种图表类型
  • 连接弹性 — 自动重试,并采用指数退避策略
  • 非阻塞 I/O — 所有数据库操作均通过 asyncio.to_thread() 执行
  • 每个工具的 QueryBand — 用于 Teradata 工作负载管理的审计跟踪

工具

查询工具
  • query — 执行 SQL 查询,返回纯表格结果
  • visualize_query — 执行 SQL,并通过 MCP App 渲染交互式 ECharts 图表
架构工具
  • list_db — 列出所有数据库
  • list_tables — 列出数据库中的表/视图
  • show_tables_details — 显示表的列名和类型
分析工具
  • list_missing_values — 列出包含 NULL 值的列及其数量
  • list_negative_values — 列出包含负值的列及其数量
  • list_distinct_values — 列出每列中不同类别的数量
  • standard_deviation — 计算列的均值和标准差
MCP App — 交互式可视化

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(简单绑定)[email protected]
Active Directory(DIGEST-MD5)authcid=DOMAIN\username
OpenLDAP / Sun DSauthcid=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_URITeradata 连接 URL(teradatasql://user:pass@host/db)—
DB_LOGMECH身份验证机制:TD2、LDAP、KRB5、TDNEGO、JWTTD2
DB_LOGDATALDAP/JWT 凭据(例如,authcid=user password=pass)—
DB_SSL_MODETLS 模式: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-httpstdio
MCP_HOSTHTTP 传输的绑定地址localhost
MCP_PORTHTTP 传输的端口8000
MCP_PATHstreamable-http 的路径/mcp/
OAuth 2.1
变量描述默认值
OAUTH_ENABLED启用 OAuth 身份验证false
KEYCLOAK_URLKeycloak 服务 URL—
KEYCLOAK_REALMKeycloak realm 名称—
KEYCLOAK_CLIENT_IDOAuth 客户端 ID—
KEYCLOAK_CLIENT_SECRETOAuth 客户端密钥—
OAUTH_RESOURCE_SERVER_URL资源服务 URL—
OAUTH_REQUIRED_SCOPES必需的作用域(以逗号分隔)—
OAUTH_VALIDATE_AUDIENCE验证令牌受众true
OAUTH_VALIDATE_SCOPES验证令牌作用域true
OAUTH_REQUIRE_HTTPS要求 OAuth URL 使用 HTTPStrue
CORS_ALLOWED_ORIGINSCORS 允许的来源*
OAuth 作用域
作用域描述
teradata:read数据库资源的读取权限
teradata:write数据库资源的写入权限
teradata:query执行 SQL 查询
teradata:admin管理权限
teradata:schema模式管理操作
传输兼容性
传输方式OAuth发现端点使用场景
stdio不适用不适用Claude Desktop、命令行客户端
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=LDAP 和 DB_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。

致谢

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。