Teradata
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"teradata": {
"args": [
"--directory",
"/path_to_code/teradata-mcp-server",
"run",
"teradata-mcp-server"
],
"command": "uv",
"env": {
"DATABASE_URI": "teradata://demo_user:teradata-demo@test-vikzqtnd0db0nglk.env.clearscape.teradata.com:1025/demo_user"
}
}
}
}
可用工具 (18 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
execute_read_query 1 个参数
Executes a SQL query to read from the database.
该工具无需必填参数,直接调用即可
execute_write_query 1 个参数
Executes a SQL query to write to the database.
该工具无需必填参数,直接调用即可
read_table_ddl 2 个参数
Display table DDL definition.
该工具无需必填参数,直接调用即可
read_database_list
List all databases in the Teradata System.
该工具无需必填参数,直接调用即可
read_table_list 1 个参数
List objects in a database.
该工具无需必填参数,直接调用即可
read_column_description 2 个参数
Show detailed column information about a database table.
该工具无需必填参数,直接调用即可
read_table_preview 2 个参数
Get data samples and structure overview from a database table.
该工具无需必填参数,直接调用即可
read_table_affinity 2 个参数
Get tables commonly used together by database users, this is helpful to infer relationships between tables.
该工具无需必填参数,直接调用即可
read_table_usage 1 个参数
Measure the usage of a table and views by users in a given schema, this is helpful to infer what database objects are most actively used or drive most value.
该工具无需必填参数,直接调用即可
read_SQL_list 2 个参数
Get a list of SQL run by a user in the last number of days if a user name is provided, otherwise get list of all SQL in the last number of days.
该工具无需必填参数,直接调用即可
read_table_space 2 个参数
Get table space used for a table if table name is provided or get table space for all tables in a database if a database name is provided.
该工具无需必填参数,直接调用即可
read_database_space 1 个参数
Get database space if database name is provided, otherwise get all databases space allocations.
该工具无需必填参数,直接调用即可
read_database_version
Get Teradata database version information.
该工具无需必填参数,直接调用即可
read_resusage_summary
Get the Teradata system usage summary metrics by weekday and hour for each workload type and query complexity bucket.
该工具无需必填参数,直接调用即可
read_missing_columns 1 个参数
Get the column names that having missing values in a table.
该工具无需必填参数,直接调用即可
read_negative_columns 1 个参数
Get the column names that having negative values in a table.
该工具无需必填参数,直接调用即可
read_destinct_categories 2 个参数
Get the destinct categories from column in a table.
该工具无需必填参数,直接调用即可
read_standard_deviation 2 个参数
Get the standard deviation from column in a table.
该工具无需必填参数,直接调用即可
服务介绍
Teradata MCP 服务器模板
概述
Teradata MCP 服务器是一个开源项目,我们欢迎通过拉取请求(pull requests)进行贡献。
我们提供了三组工具及相关提示:
-
td_base_tools:
-
execute_read_query - 执行读取查询
-
execute_write_query - 执行写入查询
-
read_table_DDL - 返回表的DDL信息
-
read_database_list - 返回所有数据库的列表
-
read_table_list - 返回指定数据库中的表列表
-
read_column_description - 返回表中列的描述
-
read_table_preview - 返回表的前5行数据及列信息
-
read_table_affinity - 获取经常一起使用的表
-
read_table_usage - 测量给定模式下用户对表和视图的使用情况
-
prompt_general - 针对数据库创建SQL查询
-
prompt_table_business_description - 生成表的业务描述
-
prompt_database_business_description - 基于表生成数据库的业务描述
-
-
td_dba_tools:
-
read_user_sql_list - 返回用户的最近执行的SQL列表
-
read_table_sql_list - 返回针对某表最近执行的SQL列表
-
read_table_space - 返回CurrentPerm表空间
-
read_database_space - 返回数据库分配的空间、已用空间以及使用百分比
-
read_database_version - 返回数据库版本信息
-
read_resuage_summary - 按工作日和小时获取每种工作负载类型和查询复杂度桶的Teradata系统使用情况摘要指标。
-
read_flow_control - 按天和小时获取Teradata系统的流控制指标
-
read_feature_usage - 获取用户功能使用指标
-
read_user_delay - 获取Teradata用户延迟指标
-
prompt_table_archive - 为数据库表创建归档策略
-
prompt_database_lineage - 创建数据库中表的有向血缘关系图
-
-
td_data_quality_tools:
- missing_values - 返回缺失值的列名列表
- negative_values - 返回负值的列名列表
- distinct_categories - 返回列内的类别列表
- standard_deviation - 返回列的均值和标准差
您可以在custom_tools.yaml文件或任何以_tools.yaml结尾的文件中定义自定义“查询”工具。只需指定工具名称、描述和要执行的SQL查询即可。目前不支持参数。
测试目录包含一个简单的ClientChatBot工具,用于测试这些工具。
环境设置
步骤1 - 假设您的本地机器上已经安装了uv包。uv的安装说明请参见 这里。
步骤2 - 克隆mcp-server仓库:
在Windows上
mkdir MCP
cd MCP
git clone https://github.com/Teradata/teradata-mcp-server.git
cd teradata-mcp-server
uv sync
.venv/Scripts/activate
在Mac/Linux上
mkdir MCP
cd MCP
git clone https://github.com/Teradata/teradata-mcp-server.git
cd teradata-mcp-server
uv sync
source .venv/bin/activate
步骤3 - 您需要更新.env文件
-
将env文件重命名为.env
-
数据库URI格式如下:
teradata://username:password@host:1025/databasename,可以使用ClearScape Analytics体验版这里- 更新用户名
- 更新密码
- 更新Teradata主机
- 更新数据库名
-
/test/pydanticaiBedrock.py代码运行需要LLM凭证可用 -
SSE设置
- SSE : 布尔值,决定您的服务器是否将使用SSE传输(SSE=True)还是stdio传输(SSE=False)。- SSE_HOST: 服务器所在的IP地址,默认应为127.0.0.1
-
SSE_PORT: 服务器所在的端口地址,默认应为8001
示例 .env 文件
############################################
DATABASE_URI=teradata://username:password@host:1025/databasename
SSE=False
SSE_HOST=127.0.0.1
SSE_PORT=8001
############################################
aws_access_key_id=
aws_secret_access_key=
aws_session_token=
aws_region_name=
############################################
OPENAI_API_KEY=
使用MCP Inspector测试您的服务器
步骤1 - 启动服务器,在终端中输入以下命令
uv run mcp dev ./src/teradata_mcp_server/server.py
注意:如果您在Windows机器上运行此命令并遇到npx、npm或node.js错误,请从这里安装所需的node.js软件:https://github.com/nodists/nodist
步骤2 - 打开MCP Inspector
- 您应该打开检查工具,访问 http://127.0.0.1:6274
- 点击工具
- 点击列出工具
- 点击读取数据库列表
- 点击运行
测试其他工具,每个工具都应有成功的输出
使用Control+c在终端中停止服务器
运行服务器
您可以简单地通过以下命令运行服务器:
uv run teradata-mcp-server
使用stdio将您的服务器添加到代理
选项1 - pydanticai聊天机器人
步骤1 - 确认.env文件中的SSE标志已设置为False
SSE=False
步骤2 - 修改./test/ClientChatBot.py脚本以指向您安装服务器的位置,您需要修改以下行
td_mcp_server = MCPServerStdio( uv , ["--directory", "/Users/Daniel.Tehan/Code/MCP/teradata-mcp-server", "run", "teradata-mcp-server"])
步骤3 - 运行./test/ClientChatBot.py脚本,这将创建一个与具有MCP服务器访问权限的代理进行交互的会话。从终端。
uv run ./test/ClientChatBot.py
- 要求代理列出数据库
- 要求代理列出数据库中的表
- 要求代理显示数据库中的所有对象
- 向代理询问需要对表执行SQL的问题
- 输入"quit"退出。
选项2 - ADK聊天机器人
步骤1 - 确认.env文件中的SSE标志已设置为False
SSE=False
步骤2 - 进入teradata_mcp_server/test目录。从终端。
cd test
adk web
步骤3 - 打开ADK Web Server
步骤4 - 与td_agent聊天
选项3 - mcp_chatbot
步骤0 - 修改test目录下的server_config.json,确保路径正确。
步骤1 - 确认.env文件中的SSE标志已设置为False
SSE=False
步骤2 - 进入teradata_mcp_server目录,并从终端运行mcp_chatbot
uv run test/mcp_chatbot.py
步骤3 - 通过键入/prompts列出提示
查询: /prompts
步骤4 - 运行描述数据库的提示
查询: /prompt database_business_description database_name=demo_user
将使用stdio的工具添加到Visual Studio Code Co-pilot
- 确认.env文件中的SSE标志已设置为False
SSE=False
- 在VS Code中,“显示并运行命令”
- 选择“MCP: 添加服务器”
- 选择“命令Stdio”
- 在要运行的命令处输入“uv”
- 为ID输入服务器名称
- 应该会打开settings.json文件
- 修改目录路径并确保它指向您安装服务器的位置
- 添加参数,使其看起来像这样:
注意:您需要根据您的系统修改args中的目录路径,这需要是一个完整路径。您可能还需要提供uv命令的完整路径。
"mcp": {
"servers": {
"TeradataStdio": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/Users/Daniel.Tehan/Code/MCP/teradata-mcp-server",
"run",
"teradata-mcp-server"
]
}
}
}- 您可以通过 settings.json 文件启动服务器,或者使用 "MCP: Start Server"
使用 SSE 将工具添加到 Visual Studio Code Co-pilot
- 确认 .env 文件中的 SSE 标志已设置为 False
SSE=True
SSE_HOST=127.0.0.1
SSE_PORT=8001
- 您需要从终端启动服务器
uv run teradata-mcp-server
-
在 VS Code 中,“显示并运行命令”
-
选择 "MCP: Add Server"
-
选择 "HTTP Server Sent Events"
-
输入服务器的位置 URL,例如 http://127.0.0.1:8001/sse
-
输入服务器的名称作为 ID
-
选择用户空间
-
应该会打开 settings.json 文件
-
添加参数,使其看起来像这样:
"mcp": {
"servers": {
"TeradataSSE": {
"type": "sse",
"url": "http://127.0.0.1:8001/sse"
}
}
} -
在 settings.json 文件中或通过 "MCP: Start Server" 启动服务器
将 MCP 服务器添加到 Claude Desktop
您可以通过在 claude_desktop_config.json 配置文件中添加此条目来将此服务器添加到 Claude 桌面:
注意:您需要根据您的系统修改 args 中的目录路径,这需要是一个完整的路径。您可能还需要在命令中提供 uv 的完整路径。
注意:这要求 uv 可以在您的系统路径中被 Claude 访问,或者全局安装在您的系统上(例如,Mac OS 用户可以使用 brew 安装 uv)。
{
"mcpServers": {
"teradata": {
"command": "uv",
"args": [
"--directory",
"/path_to_code/teradata-mcp-server",
"run",
"teradata-mcp-server"
],
"env": {
"DATABASE_URI": "teradata://demo_user:teradata-demo@test-vikzqtnd0db0nglk.env.clearscape.teradata.com:1025/demo_user"
}
}
}
}
使用 mcpo 作为 REST 端点暴露工具
您可以使用 mcpo 将此 MCP 工具暴露为与 OpenAPI 兼容的 HTTP 服务器。
例如,使用 uv:
uvx mcpo --port 8001 --api-key "top-secret" -- uv run teradata-mcp-server
现在您的 Teradata 工具作为本地 REST 端点可用,在 http://localhost:8001/docs 查看文档并进行测试。
使用 Open WebUI 与服务器交互
Open WebUI 是一个用户友好的自托管 AI 平台,设计为完全离线运行,支持各种 LLM 运行器如 Ollama。它提供了一种方便的方式,通过直观的 GUI 与 LLM 和 MCP 服务器交互。可以使用 mcpo 组件与此 MCP 服务器集成。
首先按照 上面的部分 所述运行 mcpo。
python -m venv ./env
source ./env/bin/activate
pip install open-webui
open-webui serve
访问 UI 地址为 http://localhost:8080。
要添加 MCP 工具,请导航至 设置 > 工具 > 添加连接,并输入您的 mcpo 服务器连接详细信息(例如 localhost:8001,如果在 mcpo 部分执行了命令行,则密码为 top-secret)。
您应该能够在右侧的 Chat Control Valves 部分看到这些工具,并让您的模型使用它们。