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の場合
Mac/Linuxの場合
ステップ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 ファイルの例
MCP Inspector でサーバーをテストする
ステップ1 - サーバーを起動し、ターミナルに以下を入力します
注意: 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に設定されていることを確認する
ステップ2 - ./test/ClientChatBot.pyスクリプトを変更して、サーバーをインストールした場所を指すようにします。次の行を変更する必要があります。
ステップ3 - ./test/ClientChatBot.pyスクリプトを実行します。これにより、MCPサーバーにアクセスできるエージェントとの対話型セッションが作成されます。ターミナルから実行してください。
エージェントにデータベースのリストを依頼する
エージェントにデータベース内のテーブルをリストするように依頼する
エージェントにデータベース内のすべてのオブジェクトを表示するよう依頼する
エージェントに、テーブルに対してSQLを実行する必要がある質問をします。
終了するには「quit」と入力します。
オプション2 - ADKチャットボット
ステップ1 - .envファイルのSSEフラグがFalseに設定されていることを確認する
ステップ 2 - ターミナルから teradata_mcp_server/test ディレクトリに移動します。
ステップ3 - ADK Webサーバーを開く
ステップ4 - td_agentとチャットする
オプション3 - mcp_chatbot
ステップ 0 - テスト ディレクトリの server_config.json を変更し、パスが正しいことを確認します。
ステップ1 - .envファイルのSSEフラグがFalseに設定されていることを確認する
ステップ2 - ターミナルからteradata_mcp_serverディレクトリに移動し、mcp_chatbotを実行します。
ステップ3 - /promptsと入力してプロンプトを一覧表示する
ステップ4 - データベースを説明するプロンプトを実行する
Visual Studio Code Co-pilot に stdio を使用するツールを追加する
.envファイルのSSEフラグがFalseに設定されていることを確認します。
VS Codeでは、「コマンドの表示と実行」
「MCP: サーバーの追加」を選択
「コマンドStdio」を選択
実行するにはコマンドに「uv」と入力してください
IDのサーバー名を入力してください
設定.jsonファイルが開きます
ディレクトリパスを変更し、サーバーがインストールされている場所を指していることを確認します。
次のように引数を追加します。
注: お使いのシステムに合わせて、引数のディレクトリパスを変更する必要があります。これは完全なパスである必要があります。コマンドでも uv への完全なパスを指定する必要がある場合があります。
設定.jsonファイル内からサーバーを起動するか、「MCP: Start Server」から起動することができます。
SSE を使用したツールを Visual Studio Code Co-pilot に追加する
.envファイルのSSEフラグがFalseに設定されていることを確認します。
ターミナルからサーバーを起動する必要があります
VS Codeでは、「コマンドの表示と実行」
「MCP: サーバーの追加」を選択
「HTTPサーバー送信イベント」を選択
サーバーの場所のURLを入力します(例: http://127.0.0.1: 8001/sse)
IDのサーバー名を入力してください
ユーザースペースを選択
設定.jsonファイルが開きます
次のように引数を追加します。
設定.jsonファイル内、または「MCP: サーバーを起動」
Claude DesktopにMCPサーバーを追加する
このエントリをclaude_desktop_config.json構成ファイルに追加することで、このサーバー Claude デスクトップを追加できます。
注: お使いのシステムに合わせて、引数のディレクトリパスを変更する必要があります。これは完全なパスである必要があります。コマンドでも uv への完全なパスを指定する必要がある場合があります。
注意: これには、Claude のシステム パスでuvが使用可能であるか、システム上にグローバルにインストールされていること (例: Mac OS ユーザーの場合はbrewとともに uv がインストールされている) が必要です。
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 を実行します。
http://localhost:8080でUIにアクセスします。MCPツールを追加するには、「設定」>「ツール」>「接続の追加」に移動し、mcpoサーバーの接続詳細を入力します(例: localhost:8001 、mcpoセクションでコマンドラインを実行した場合はパスワード = top-secret )。
右側のチャット コントロール バルブ セクションにツールが表示され、モデルがそれを使用できるようになります。