Teradata MCP サーバー テンプレート
概要
Teradata MCP サーバーはオープン ソース プロジェクトであり、プル リクエストによる貢献を歓迎します。
私たちは3つのツールセットと関連する役立つプロンプトを提供しています
td_base_tools:
execute_read_query - 読み取りクエリを実行する
execute_write_query - 書き込みクエリを実行する
read_table_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 - 負の値を持つ列名のリストを返します
distinctive_categories - 列内のカテゴリのリストを返します
標準偏差 - 列の平均と標準偏差を返します
custom_tools.yamlファイル、または_tools.yamlで終わる任意のファイルに、カスタム「クエリ」ツールを追加定義できます。ツール名、説明、実行するSQLクエリを指定するだけです。現時点ではパラメータはサポートされていません。
Test ディレクトリには、ツールをテストするためのシンプルな 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/activateMac/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 Experience を使用してください(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インスペクターを開く
インスペクターツールを開き、 http://127.0.0.1: 6274 にアクセスしてください。
ツールをクリック
リストツールをクリック
read_database_listをクリックします
実行をクリック
他のツールもテストし、それぞれが成功するはずです
ターミナルでサーバーを停止するには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サーバーを開く
ステップ4 - td_agentとチャットする
オプション3 - mcp_chatbot
ステップ 0 - テスト ディレクトリの server_config.json を変更し、パスが正しいことを確認します。
ステップ1 - .envファイルのSSEフラグがFalseに設定されていることを確認する
SSE=Falseステップ2 - ターミナルからteradata_mcp_serverディレクトリに移動し、mcp_chatbotを実行します。
uv run test/mcp_chatbot.pyステップ3 - /promptsと入力してプロンプトを一覧表示する
Query: /promptsステップ4 - データベースを説明するプロンプトを実行する
Query: /prompt database_business_description database_name=demo_userVisual Studio Code Co-pilot に stdio を使用するツールを追加する
.envファイルのSSEフラグがFalseに設定されていることを確認します。
SSE=FalseVS Codeでは、「コマンドの表示と実行」
「MCP: サーバーの追加」を選択
「コマンドStdio」を選択
実行するにはコマンドに「uv」と入力してください
IDのサーバー名を入力してください
設定.jsonファイルが開きます
ディレクトリパスを変更し、サーバーがインストールされている場所を指していることを確認します。
次のように引数を追加します。
注: お使いのシステムに合わせて、引数のディレクトリパスを変更する必要があります。これは完全なパスである必要があります。コマンドでも uv への完全なパスを指定する必要がある場合があります。
"mcp": {
"servers": {
"TeradataStdio": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/Users/Daniel.Tehan/Code/MCP/teradata-mcp-server",
"run",
"teradata-mcp-server"
]
}
}
}設定.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-serverVS Codeでは、「コマンドの表示と実行」
「MCP: サーバーの追加」を選択
「HTTPサーバー送信イベント」を選択
サーバーの場所のURLを入力します(例: http://127.0.0.1: 8001/sse)
IDのサーバー名を入力してください
ユーザースペースを選択
設定.jsonファイルが開きます
次のように引数を追加します。
"mcp": {
"servers": {
"TeradataSSE": {
"type": "sse",
"url": "http://127.0.0.1:8001/sse"
}
}
}設定.jsonファイル内、または「MCP: サーバーを起動」
Claude DesktopにMCPサーバーを追加する
このエントリをclaude_desktop_config.json構成ファイルに追加することで、このサーバー Claude デスクトップを追加できます。
注: お使いのシステムに合わせて、引数のディレクトリパスを変更する必要があります。これは完全なパスである必要があります。コマンドでも uv への完全なパスを指定する必要がある場合があります。
注意: これには、Claude のシステム パスでuvが使用可能であるか、システム上にグローバルにインストールされていること (例: 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は、Ollamaをはじめとする様々なLLMランナーをサポートし、完全にオフラインで動作するように設計された、ユーザーフレンドリーなセルフホスト型AIプラットフォームです。直感的なGUIからLLMやMCPサーバーと簡単に連携できます。mcpoコンポーネントを使用することで、このMCPサーバーと統合できます。
まず、上記のセクションで指定されているように mcpo を実行します。
python -m venv ./env
source ./env/bin/activate
pip install open-webui
open-webui servehttp://localhost:8080でUIにアクセスします。MCPツールを追加するには、「設定」>「ツール」>「接続の追加」に移動し、mcpoサーバーの接続詳細を入力します(例: localhost:8001 、mcpoセクションでコマンドラインを実行した場合はパスワード = top-secret )。
右側のチャット コントロール バルブ セクションにツールが表示され、モデルがそれを使用できるようになります。