はじめに
Dataikuは"Everyday AI, Extraordinary People"というテーマを掲げ、データ分析やAI活用を広げ、皆様のデータ分析への可能性を解放するプラットフォーム製品です。
こちらから無料トライアルにて直ぐにお試しも頂けます。
本記事ではAIエージェント構築において着目されている「MCP(Model Context Protocol)」を取り上げ、実践編としてサーバ構築~ツール公開までの流れを具体的に記載します。
Dataikuの機能も活用しつつ、一般的な内容にも準拠しており、シンプルな手順で学んで頂けると思いますので、是非ご一読及びお試し下さいませ!
この記事でわかる・できること
- MCPの概要
- MCPに公開するツールの作成
- MCP Serverの構築
- クライアントからのツールの呼び出し
この記事の対象者
- MCPについて学びたい方
- AIエージェントに興味のある方
- Dataikuにご興味のある方 etc...
目次
1.エージェントツールの作成
2.MCPサーバーコードの設定
3.MCPサーバーの起動
4.MCP Inspectorを使用した動作テスト
1.エージェントツールの作成
1.1 環境準備
MCPの概要や考え方自体は色々と情報がありますので、割愛します。
基本的にはデータや分析結果、エージェントなどを「ツール」として「MCPサーバー」に公開し、「MCPクライアント」から呼び出す形となります。
今回は上記の流れを実機にて追える様にしておりますので、ぜひ触ってみたい方は14日間のトライアルを以下からお試し下さい。
Dataikuの利用登録自体は手順を追えば完了します。
1.2 コード環境の設定
MCPを利用するためのmcpパッケージのインストールとPython環境の準備を実施します。
・クラウド環境の場合は、以下のクラウドコンソールから「OPEN INSTANCE」を押下してDSS(Data Science Studio)を開いてください

MCPのSDKを利用できる様にPython環境の設定を実施します。Dataikuではコード環境の設定/管理も簡易にできます。
・右上の「ナインドット」を押下し、「アドミニストレーション」を選択して下さい

・タブの一覧から「Code Envs」を選択し「NEW PYTHON ENV」から新規のPython環境を作成します。Nameには「mcp_py310」と、Pythonのベース環境は「Python3.10」を選択して下さい

・「Packages to install」のRequested packages(Pip)の中に"mcp"と記載し、「保存して更新」を押下して下さい

こちらでPython3.10のベースにmcpのパッケージをインストールした"mcp_py310"と命名したコード環境の準備が完了です。
1.3 エージェントツールの作成
MCPサーバーに公開する分析アセットやツール、エージェントなどをコード・ノーコードにて様々な形で作成できる点はDataikuの大きな得意分野です。
今回はメイントピックではないのでほぼ割愛しますが、分析自体も様々試したい方は以下の記事やその他の記事もご確認下さい。
では、Dataikuのホーム画面からサンプルツール用のプロジェクトを作成します。
※今回は"会社情報の取得"を例にしておりますがタイトルのみで、中身は定義しておりません。
・DSSのトップ画面から「新しいプロジェクト」、「空白のプロジェクト」を選択します
Dataikuのトップ画面には左上の鳥のアイコンをクリックする事で遷移する事ができます

・Nameは自由ですが例として「MCPサーバー」と入力し「CREATE」を押下します。
※私の環境では作成済みである旨がエラー表示しておりますが、無視して下さい

こちらで分析用のプロジェクトの作成が完了します。
次に、サンプルのAgent Tools(今回MCPサーバーに公開するツール)を作成します。
・上部のタブから「Agent Tools」を選択し「NEW AGENT TOOL」を選択します

・「LLM Mesh Query」を選択し、Nameに「get_company_info」を入力しCREATEボタンを押下します

※Dataikuではすぐにノーコードで利用できるVisual Toolを多く開発しています。今回はサンプルとして実際に動くツールは作っておりませんが、是非Tool自体の作成も広くお試し下さい。
LLM Mesh Queryツールはシンプルにクエリ問い合わせを実施するツールです。
・get_company_infoの中身は空で構いませんが、参考として画面紹介します。
※URLの最後がIDになっており、後ほど利用します(私の例だとqUG2mxu)

こちらでエージェントツールの準備は完了です。
2.MCPサーバーコードの設定
2.1 MCPサーバー用のコード準備
「MCPサーバー」としてツールを公開する上では、ホストやポートなどのサーバー情報や、登録するツール、起動コマンドの記述などが必要です。
・上部のタブから「Libraries」を押下して下さい
・左側のパネル内の「ADD」や「スリードット」から画像を参考に"python"フォルダの下に"mcp"フォルダを作成します。その下に"company_info_mcp.py"と命名したファイルを作成して下さい

・ファイルの中身は以下をそのままコピーして下さい
・その上で11行目のTOOL_IDに先ほど作成したツールID(URLから引用)を入力して下さい。私の場合は"qUG2mxu"となります。
# 必要なパッケージのインポート
import dataiku
from mcp.server.fastmcp import FastMCP
# 変数定義
MCP_SERVER_NAME="Company Info"
MCP_SERVER_INSTRUCTIONS="This server provides a tool which can query the web to get company info"
HOST="0.0.0.0"
PORT=42000
TOOL_ID="" ## こちらにツールIDを入力して下さい
# MCP Object の初期化
mcp = FastMCP(name=MCP_SERVER_NAME,
instructions=MCP_SERVER_INSTRUCTIONS,
host=HOST,
port=PORT
)
# 先ほど作成したエージェントツールの登録
@mcp.tool()
async def get_company_info(query: str) -> str:
"""
This tool provides information about companies.
It can take a company name or a CEO's name as input and get information associated with it.
Args:
query: User query
Returns:
Generated response as a string.
"""
client = dataiku.api_client()
tool = client.get_default_project().get_agent_tool(TOOL_ID)
output = tool.run({"question": query})
return output['output']['response']
# サーバー実行
if __name__ == "__main__":
mcp.run(transport='streamable-http')
2.2 Code Studioテンプレートの構築
2.1で定義したMCPサーバーコードを動かすサーバー自体を準備していきます。
DataikuではCode studioが利用できますが、その中でサーバー定義を記載し、ヘッドレスWebAppとして稼働させます
(ヘッドレスWebApp:Webアプリケーションとしての画面の機能を持たず、バックエンド機能としてAPIのコールなどを担うサーバー)
・1.2でも実施した通り、右上の「ナインドット」を押下し、「アドミニストレーション」を選択
・タブ内の「Code Studios」を選択し、"MCP_Server"と名前を入力して「CREATE」を押下

サーバーが参照するコード環境を指定します
・左下青文字の「ADD A BLOCK」から"ADD Code Environment"を選択し、出てきたブロック内の"Code Environment"に1.2で作成した"mcp_py310"を選択します

もう一つ、MCPサーバーを起動するエンドポイントを作成します。この内容を元にサーバーを起動し、ポートを公開します。
・左下青文字の「ADD A BLOCK」から"ADD an Entrypoint"を選択し、出てきたブロック内に以下の情報を記載します。
- Label(任意):DKU Agent
- EntryPoint:/home/dataiku/run_mcp_server_1.sh
- Scripts:
${template.resources}/run_mcp_server_1.sh
run_mcp_server_1.sh - Launch for Webapps:チェック
- Expose port:チェック
- Exporsed port label(任意):MCP Server 1
- Exposed port:42000
- Proxied subpath:/
最後に、サーバー実行や定義を読み込むシェルスクリプトを用意しておきます。こちらで毎回起動時の変数定義などが不要になります。
・「Resources」タブに遷移し、左側のパネルから「ADD」等で、"run_mcp_server_1.sh"という名前のファイルを作成します。内容は以下をコピペして下さい。
#!/bin/sh
source /opt/dataiku/python-code-envs/mcp_py310/bin/activate
cd /home/dataiku/workspace/project-lib-versioned/python/mcp
python company_info_mcp.py
完了したら右上の「SAVE」→「BUILD」して下さい
こちらでCode Studioを利用する際のテンプレートの作成が完了します。(今回だとMCPサーバーの定義)
3.MCPサーバーの起動
3.1 MCPサーバー定義済みのCode Studioコンテナの作成
ここまでで、MCPサーバーの定義をCode Studioテンプレート化しました。そのテンプレートを用いてCode Studioのコンテナを起動し、それをWebサーバーとして公開します。
・右上の「NEW CODE STUDIO」のボタンをクリックし、先ほど作成した"MCP_Server"のテンプレートをクリックし、名前に"MCP Server"と入力して、CREATEを押下します

・作成したMCP Serverを選択し、右側のパネルを"→"や"+"マークで開いた上で「Publish」を選択し、Webapp nameに"MCP Server"と入力してCREATEを押下します

3.2 Webアプリケーションの起動
MCPサーバーとしてバックエンドでサーバーを起動します。
・上部のタブから「Webapps」を選択し、作成されている「MCP Server」を選択

・「Edit」タブから"API access"と"Require authentication"にチェックを入れ、「VIEW WEBAPP」ボタンを押下します
・起動が明示的に必要な場合は遷移後の"View"の画面で「START BACKEND」を押下します

こちらはUIのないヘッドレスウェブアプリであるため、アプリの表示タブに「Web App backend is down, please check the log tab」などのメッセージが表示される場合がありますがそちらで問題ありません。

バックエンドが起動すると、MCPサーバーにURL形式でアクセスできるようになります。
https://<DATAIKU_HOST>/<webapps>/<PROJECT_KEY>/<WEBAPP_ID>/mcp
例:https://dummy-host.com/webapps/MCP/AvnnnKa/mcp
・以下の添付の様に、URLからホスト名や、PROJECT_KEY、WEBAPP_ID(webappsの後の枠で囲った最初の7桁の英数字です)などが分かりますので、参考にして下さい
4.MCP Inspectorを使用した動作テスト
4.1 MCP Inspectorの起動
MCP InspectorはMCPサーバーのテストとデバックのための開発ツールです。
簡易に使えるので、今回構築したMCPサーバーで公開しているツールが参照できるか確認してみます。
・ローカルのターミナルを開いて以下のコマンドを実行します。
npx @modelcontextprotocol/inspector
・npxが見つからない場合は以下パッケージをインストールして下さい。
※私はMac環境なので、brew経由でインストールしますが、お手持ちの環境に合わせて下さいませ
brew install node
再度npxコマンドを実行すると、自動でブラウザでMCP Inspectorが起動します。
4.2 Dataiku(MCPサーバー)接続に利用するAPI Tokenの取得
Dataikuを利用する上では認証が必要ですが、外部からAPI接続する場合はAPI Tokenを利用して認証する事が可能です。
・Dataikuトップページの右上のイニシャル(私の場合はF)をクリックし、「Profile and settings」を選択します

・タブ内の「APIキー」を選択し「APIキーを追加」から名前を入れて「CREATE」をクリックします
画面は割愛しますが、表示された"シークレット"を貼り付け利用できる様にしておいて下さい。

4.3 MCP Inspectorでのテスト
MCPサーバー(Dataiku上)への接続情報を記載します。3.2章で確認した内容と同様です。
- URL:https://<DATAIKU_HOST>/<webapps>/<PROJECT_KEY>/<WEBAPP_ID>/mcp
例:https://dummy-host.com/webapps/MCP/AvnnnKa/mcp - Bearer Tokenに4.2で発行したAPIシークレットを入力します
入力が完了したら「Connect」をクリックして、Toolsの中などに"get_company_info"などが出てくればOKです!
本来はここでツールにプロンプトを渡してテスト等も可能なのですが、今回はサンプルのエージェントツールを作成の上、呼び出しの確認のみを実施してますので、ぜひツール自体の開発も色々と試してみて下さいませ!
参考情報
- Twitterで日々データ分析やDataikuに関わる内容を主に短い動画を主に発信してます。是非お気軽にフォローして頂けますと幸いです
https://x.com/Fumihiko__K - 本記事の参考元のドキュメントBuilding your MCP Server in Dataiku
- Dataikuの基本操作
"Dataiku"でweb検索頂くとパートナー様を含めた情報が様々出てきますので、是非ご参考にして下さい - DataikuのYoutube(日本語版)
日本語でYoutube動画で諸々ご紹介しております。
https://www.youtube.com/playlist?list=PLWjlCkA2BrRSvhNuTLH10VSQZoPRhRC1Y
おわりに
- Dataikuは「データ接続〜前処理〜AI・機械学習~Ops」までの全てのプロセスに加え、生成AI、AIエージェントにもいち早く対応している先進的なプラットフォームです
- 本内容に留まらず本当に幅広く様々な事が実現できますので、ぜひ幅広い観点で色々とお試しくださいませ。
また、直近より簡易にMCPに対応できる様な発表及び機能も予定しておりますので、またアップデートさせて頂きます。
ご不明点等もございましたらお気軽にDataikuのホームページなどからご連絡下さいませ!

