# Teradata
## 基本信息
- Slug: `teradata-teradata-mcp-server`
- Source: modelscope
- Publisher: @Teradata/teradata-mcp-server
- Categories: databases / data-platforms / code-execution
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@Teradata/teradata-mcp-server
## 简介
暂无描述。
## MCP Server 详情

# Teradata MCP 服务器模板

### 概述
Teradata MCP 服务器是一个开源项目，我们欢迎通过拉取请求（pull requests）进行贡献。

我们提供了三组工具及相关提示：
1. 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 - 基于表生成数据库的业务描述

2. 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 - 创建数据库中表的有向血缘关系图

3. td_data_quality_tools:
    - missing_values - 返回缺失值的列名列表
    - negative_values - 返回负值的列名列表
    - distinct_categories - 返回列内的类别列表
    - standard_deviation - 返回列的均值和标准差

您可以在`custom_tools.yaml`文件或任何以`_tools.yaml`结尾的文件中定义自定义“查询”工具。只需指定工具名称、描述和要执行的SQL查询即可。目前不支持参数。

测试目录包含一个简单的ClientChatBot工具，用于测试这些工具。

--------------------------------------------------------------------------------------
### 环境设置
步骤1 - 假设您的本地机器上已经安装了uv包。uv的安装说明请参见 [这里](https://github.com/astral-sh/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体验版[这里](https://www.teradata.com/getting-started/demos/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聊天机器人
&nbsp;&nbsp;&nbsp;&nbsp; 步骤1 - 确认.env文件中的SSE标志已设置为False

SSE=False

&nbsp;&nbsp;&nbsp;&nbsp; 步骤2 - 修改./test/ClientChatBot.py脚本以指向您安装服务器的位置，您需要修改以下行

    td_mcp_server = MCPServerStdio( uv , ["--directory", "/Users/Daniel.Tehan/Code/MCP/teradata-mcp-server", "run", "teradata-mcp-server"])


&nbsp;&nbsp;&nbsp;&nbsp; 步骤3 - 运行./test/ClientChatBot.py脚本，这将创建一个与具有MCP服务器访问权限的代理进行交互的会话。从终端。

uv run ./test/ClientChatBot.py


- 要求代理列出数据库
- 要求代理列出数据库中的表
- 要求代理显示数据库中的所有对象
- 向代理询问需要对表执行SQL的问题
- 输入"quit"退出。

#### 选项2 - ADK聊天机器人
&nbsp;&nbsp;&nbsp;&nbsp; 步骤1 - 确认.env文件中的SSE标志已设置为False

SSE=False

&nbsp;&nbsp;&nbsp;&nbsp; 步骤2 - 进入teradata_mcp_server/test目录。从终端。

cd test
adk web

&nbsp;&nbsp;&nbsp;&nbsp; 步骤3 - 打开[ADK Web Server](http://0.0.0.0:8000)

&nbsp;&nbsp;&nbsp;&nbsp; 步骤4 - 与td_agent聊天

#### 选项3 - mcp_chatbot

&nbsp;&nbsp;&nbsp;&nbsp; 步骤0 - 修改test目录下的server_config.json，确保路径正确。

&nbsp;&nbsp;&nbsp;&nbsp; 步骤1 - 确认.env文件中的SSE标志已设置为False

SSE=False

&nbsp;&nbsp;&nbsp;&nbsp; 步骤2 - 进入teradata_mcp_server目录，并从终端运行mcp_chatbot

uv run test/mcp_chatbot.py

&nbsp;&nbsp;&nbsp;&nbsp; 步骤3 - 通过键入/prompts列出提示

查询: /prompts

&nbsp;&nbsp;&nbsp;&nbsp; 步骤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 访问，或者全…

