Data Engineering Tutor MCP Server について
Node.js と TypeScript で構築された MCP サーバーで、AI クライアント向けにデータエンジニアリングの概念、パターン、技術の情報を個別に提供します。最新情報の取得と、ファイルに保存した既知概念のプロフィールを組み合わせています。
主な機能
- 01データエンジニアリングの最新情報取得
- 02概念プロフィールの読み取りと更新
- 03既知情報を示す MCP リソース
- 04情報提供フローのプロンプト
活用シーン
- 01最近のデータエンジニアリング動向の確認
- 02既知の概念に応じた情報提供
- 03セッション中に学んだ概念の記録
MCP 対応
最新情報の取得と、ファイル形式の知識プロフィールの読み取り・変更を行うツールを MCP クライアントに公開し、リソースとガイダンス用プロンプトも提供します。情報取得では OpenRouter 経由で Perplexity に問い合わせます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Data Engineering Tutor MCP サーバー
このリポジトリには、Node.js と TypeScript で構築されたシンプルな Model Context Protocol(MCP)サーバーが含まれています。「Data Engineering Tutor」として機能し、接続された AI クライアントに Data Engineering の概念、パターン、テクノロジーに関するパーソナライズされた最新情報を提供します。
このサーバーは、状態を保持するインタラクティブなエージェント用ヘルパーを作成するための、リソース、ツール、プロンプトの定義など、MCP の主要な概念を示します。
前提条件
- Node.js(v18 以降を推奨)
npm(またはyarn、pnpmなど、お好みの Node.js パッケージマネージャー)- MCP サーバーに接続できる AI クライアント(例:Cursor、Claude デスクトップアプリ)
- OpenRouter API Key(Perplexity 経由で Data Engineering の最新情報を取得するため)
セットアップ
-
リポジトリをクローンします:
# If you haven't already # git clone <repository-url> # cd <repository-directory> -
依存関係をインストールします:
npm install -
API キーを準備します:
de_tutor_get_updatesツールには OpenRouter API キーが必要です。- OpenRouter からキーを取得します。
- プロジェクトのルートに
.envファイルを作成します(.env.exampleをコピーできます)。 .envファイルにキーを追加します:
(プレースホルダーを実際のキーに置き換えてください。)OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxxxxxxxxxxxxxxxx
-
サーバーをビルドします: TypeScript コードをコンパイルします。
npm run build
サーバーの実行
Node を使用して、サーバーを直接実行できます:
node build/index.js
または、MCP クライアント(Cursor や Claude デスクトップアプリなど)でサーバーを起動するように設定します。サーバー名は de-tutor で、バイナリ名(クライアント設定で必要な場合)も de-tutor です。
クライアント設定の例(Claude Desktop の場合など):
{
"mcpServers": {
"de-tutor": {
"command": "node",
"args": ["/full/path/to/your/project/build/index.js"],
"env": {
"OPENROUTER_API_KEY": "sk-or-xxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
}
(args のパスが、システム上のビルド済み index.js ファイルへの正しい絶対パスであることを確認してください。サーバーは dotenv を介して .env ファイルを直接読み込むため、すでに .env ファイルを使用している場合は、ここで env セクションを指定する必要はない場合があります。)
Cursor での使用
Cursor は、MCP クライアントとして機能する AI ファーストのコードエディターです。Cursor でこのサーバーをセットアップするには、サーバーの起動設定が必要です。また、ガイダンスプロンプト用のプロジェクトルールを設定する必要がある場合もありますが、Cursor がサーバーから提供されたプロンプトを自動で認識することもあります。
-
Cursor でサーバーを設定する:
Cursor Settings>MCP>Add new global MCP serverに移動します。- 上記のクライアント設定例と同じ JSON を貼り付けます。その際、
build/index.jsへのパスがご利用のシステムで正しいことを確認してください。
-
(任意)プロンプト用の Cursor プロジェクトルールを作成する: 明示的なルールを設定したい場合や、Cursor がサーバーのプロンプトを自動で使用していない場合は、Cursor のプロジェクトルール機能を使ってガイダンスを設定できます。
-
プロジェクトのルートに
.cursor/rulesディレクトリがない場合は作成します。 -
そのディレクトリ内に
de-tutor.rule(または任意の.ruleファイル名)というファイルを作成します。 -
以下のガイダンステキストを
de-tutor.ruleに貼り付けます。You are a helpful assistant connecting to a Data Engineering knowledge server. Your goal is to provide the user with personalized updates about new Data Engineering concepts, patterns, and technologies they haven't encountered yet. Available Tools: 1. `de_tutor_get_updates`: Fetches recent general news and articles about Data Engineering. Use this first to see what's new. 2. `de_tutor_read_memory`: Checks which Data Engineering concepts the user already knows based on their stored knowledge profile. 3. `de_tutor_write_memory`: Updates the user's profile to mark whether they have learned or already know a specific Data Engineering concept mentioned in an update. Your Workflow: 1. Call `de_tutor_get_updates` to discover recent Data Engineering developments. 2. Call `de_tutor_read_memory` to understand the user's current knowledge base. 3. Present the new developments to the user, highlighting things they likely don't know. 4. If the user confirms they know a concept or have learned it, call `de_tutor_write_memory` to update their profile. Be concise and focus on delivering relevant, new information tailored to the user's existing knowledge.
-
-
接続して使用する:
- Cursor の MCP 設定で
de-tutorサーバーが有効になっていることを確認します。 - ルールファイルを使用する場合は、新しいチャットまたはコード生成リクエスト(例:Cmd+K)を開始し、リクエストに
@de-tutor-rule(またはルールファイルに付けた名前)を含めます。これにより、Cursor にルールの内容を読み込ませ、ツールの使い方を指示できます。 - サーバーのプロンプトを利用する場合は、Cursor とのやり取りを開始するだけで構いません。サーバーが提供するツールとガイダンスプロンプトを利用できるはずです。
- Cursor の MCP 設定で
機能と使用方法
このサーバーでは、以下の機能を利用できます。
- リソース(
data_engineering_knowledge_memory):data/data-engineering-knowledge.jsonにシンプルな JSON オブジェクトを保存し、既知の概念(文字列)とブール値フラグ(true)を対応付けます。 - ツール:
de_tutor_read_memory:JSON ファイルから現在の既知の概念を読み取ります。de_tutor_write_memory:概念を既知(true)または未知(false)として記録するよう JSON ファイルを更新します。入力としてconcept(文字列)とknown(ブール値)を受け取ります。de_tutor_get_updates:OpenRouter API キーを使用して Perplexity(perplexity/sonar-small-online)に問い合わせ、最新のデータエンジニアリング関連のニュース、パターン、テクノロジーを取得します。
- プロンプト(
data-engineering-tutor-guidance): 接続された AI クライアントに、ワークフロー内でツールを使用する方法を指示します。- 最新情報を取得します。
- メモリから既知の概念を読み取ります。
- 新しい情報をユーザーに提示します。
- ユーザーからのフィードバックに基づいてメモリを更新します。
開発とデバッグ
- ビルド:
npm run buildを実行すると、TypeScript がbuild/ディレクトリに JavaScript としてコンパイルされます。 - コード構成: 実装の詳細については
src/を参照してください。src/index.ts:サーバーのエントリーポイントです。特定の SDK パスからMcpServerとStdioServerTransportをインポートします。McpServerのインスタンスを作成します。他のモジュールから登録関数(registerPrompts、registerResources、registerTools)をインポートして呼び出し、サーバーインスタンスを渡します。StdioServerTransportを使ってサーバーをセットアップし、接続します。src/prompts/index.ts:ガイダンスプロンプトのテキストを定義します。McpServerインスタンスを受け取り、server.prompt()を使って静的なガイダンスプロンプトをコールバックとともに登録するregisterPromptsをエクスポートします。src/resources/index.ts:KnowledgeMemory型と、data/data-engineering-knowledge.jsonのファイル入出力用ヘルパー関数(readMemoryFile、writeMemoryFile)をエクスポートします。McpServerインスタンスを受け取り、特定の URI とReadResourceCallbackを使ってdata_engineering_knowledge_memoryリソースをserver.resource()で登録するregisterResourcesをエクスポートします。src/tools/index.ts:McpServerインスタンスを受け取り、各ツール(de_tutor_read_memory、de_tutor_write_memory、de_tutor_get_updates)をserver.tool()で登録するregisterToolsをエクスポートします。必要に応じて(write_memoryの場合)Zod を使って入力スキーマを定義します。ツール関数はresources/index.tsのヘルパーやfetchを使って処理を実行し、期待される形式で結果を返します。
- MCP Inspector:
@modelcontextprotocol/inspectorを使って、生のメッセージフローを確認します。
(この方法で実行し、サーバー自身が読み込むnpx @modelcontextprotocol/inspector node ./build/index.js.envファイルだけに依存しない場合は、環境でOPENROUTER_API_KEYが設定されていることを確認してください。)
注意事項
- このサーバーでは、ユーザーの知識を保存するためにシンプルなファイル(
data/data-engineering-knowledge.json)を使用しています。より堅牢なアプリケーションにするには、適切なデータベースを検討してください。 - エラー処理は基本的なものです。本番環境のサーバーでは、より包括的なエラー管理が必要です。
まとめ
このデモでは、TypeScript SDK と McpServer クラスを使って、機能する MCP サーバーを作成するための基本的な手順を紹介しました。状態を管理するリソース、処理を実行するツール(外部 API との連携を含む)、そして AI クライアントを導くプロンプトを定義しました。
これは、MCP を使って、より複雑で有用なエージェント型の機能を構築するための基礎となります。
(また、🐛バグを見つけた場合は、気軽にイシューを作成してください。)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。