Kaggle MCP(モデルコンテキストプロトコル)サーバー
このリポジトリには、 fastmcp
ライブラリを使用して構築されたMCP(モデルコンテキストプロトコル)サーバー( server.py
)が含まれています。Kaggle APIと連携して、データセットの検索とダウンロードのためのツール、およびEDAノートブック生成のためのプロンプトを提供します。
プロジェクト構造
server.py
: FastMCP サーバーアプリケーション。Kaggle とやり取りするためのリソース、ツール、プロンプトを定義します。.env.example
: 環境変数(Kaggle API 認証情報)のサンプルファイル。ファイル名を.env
に変更し、必要な情報を入力してください。requirements.txt
: 必要な Python パッケージをリストします。pyproject.toml
&uv.lock
:uv
パッケージ マネージャーのプロジェクト メタデータとロックされた依存関係。datasets/
: ダウンロードした Kaggle データセットが保存されるデフォルトのディレクトリ。
設定
- リポジトリをクローンします。
- 仮想環境を作成します (推奨):
- 依存関係をインストールします: pip を使用します:またはuvを使用します:
- Kaggle API 資格情報を設定します。
- 方法1(推奨): 環境変数
.env
ファイルを作成する.env
ファイルを開き、Kaggle ユーザー名と API キーを追加します。- APIキーはKaggleアカウントページ(
Account
>API
>Create New API Token
)から取得できます。ユーザー名とキーを含むkaggle.json
ファイルがダウンロードされます。
- 方法2:
kaggle.json
ファイル- Kaggle アカウントから
kaggle.json
ファイルをダウンロードします。 kaggle.json
ファイルを適切な場所(Linux/macOS の場合は通常~/.kaggle/kaggle.json
、Windows の場合はC:\Users\<Your User Name>\.kaggle\kaggle.json
)に配置します。環境変数が設定されていない場合、kaggle
ライブラリはこのファイルを自動的に検出します。
- Kaggle アカウントから
- 方法1(推奨): 環境変数
サーバーの実行
- 仮想環境がアクティブであることを確認します。
- MCP サーバーを実行します。サーバーが起動し、リソース、ツール、プロンプトが登録されます。MCPクライアントまたは互換ツールを使用してサーバーと対話できます。
Dockerコンテナの実行
1. Kaggle API 認証情報を設定する
このプロジェクトでは、Kaggle データセットにアクセスするために Kaggle API 認証情報が必要です。
- https://www.kaggle.com/settingsにアクセスし、「Create New API Token」をクリックして
kaggle.json
ファイルをダウンロードします。 kaggle.json
ファイルを開き、ユーザー名とキーをプロジェクト ルートの新しい.env
ファイルにコピーします。
2. Dockerイメージをビルドする
3. .envファイルを使用してDockerコンテナを実行する
これにより、Kaggle の認証情報がコンテナ内の環境変数として自動的に読み込まれます。
サーバー機能
サーバーは、モデル コンテキスト プロトコルを通じて次の機能を公開します。
ツール
search_kaggle_datasets(query: str)
:- 指定されたクエリ文字列に一致する Kaggle 上のデータセットを検索します。
- 参照、タイトル、ダウンロード数、最終更新日などの詳細を含む、一致する上位 10 個のデータセットの JSON リストを返します。
download_kaggle_dataset(dataset_ref: str, download_path: str | None = None)
:- 特定の Kaggle データセットのファイルをダウンロードして解凍します。
dataset_ref
:username/dataset-slug
の形式のデータセット識別子 (例:kaggle/titanic
)。download_path
(オプション): データセットのダウンロード先を指定します。省略した場合は、サーバースクリプトの場所を基準とした相対パス./datasets/<dataset_slug>/
がデフォルトとなります。
プロンプト
generate_eda_notebook(dataset_ref: str)
:- 指定された Kaggle データセット参照の基本的な探索的データ分析 (EDA) ノートブックを作成するための AI モデル (Gemini など) に適したプロンプト メッセージを生成し、
- プロンプトでは、データの読み込み、欠損値のチェック、視覚化、基本的な統計をカバーする Python コードが求められます。
Claudeデスクトップに接続しています
Claude > 設定 > 開発者 > 構成の編集 > claude_desktop_config.json に移動して、以下を追加します。
使用例
AI エージェントまたは MCP クライアントは、次のようにしてこのサーバーと対話できます。
- エージェント: 「Kaggle で「心臓病」に関するデータセットを検索してください」
- サーバーは
search_kaggle_datasets(query='heart disease')
を実行します。
- サーバーは
- エージェント: 「データセット 'user/heart-disease-dataset' をダウンロードしてください」
- サーバーは
download_kaggle_dataset(dataset_ref='user/heart-disease-dataset')
を実行します。
- サーバーは
- エージェント: 「'user/heart-disease-dataset' の EDA ノートブックプロンプトを生成します」
- サーバーは
generate_eda_notebook(dataset_ref='user/heart-disease-dataset')
を実行します。 - サーバーは構造化されたプロンプト メッセージを返します。
- サーバーは
- エージェント: (コード生成モデルにプロンプトを送信します) -> EDA Python コードを受信します。
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Kaggle API と連携して、データセットの検索とダウンロードのためのツールと、EDA ノートブックを生成するためのプロンプトを提供します。
Related MCP Servers
- -securityAlicense-qualityAllows you to explore and manipulate kintone data using AI tools such as Claude Desktop!Last updated -9GoMIT License
- AsecurityAlicenseAqualityAllows the use of Kagi's API for web searching and content enrichment through methods like fastgpt, enrich/web, and enrich/news.Last updated -32PythonMIT License
- AsecurityAlicenseAqualityThis server facilitates interaction with Keboola's Storage API, enabling users to browse and manage project buckets, tables, and components efficiently through Claude Desktop.Last updated -757PythonMIT License
- AsecurityAlicenseAqualityEnables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.Last updated -3316TypeScriptMIT License