mcpField
D
Data Engineering Tutor MCP Server

Data Engineering Tutor MCP Server

ローカル
github.com/scriptstarデータ・分析078 週間前に更新

Data Engineering Tutor MCP Server について

Node.js と TypeScript で構築された MCP サーバーで、AI クライアント向けにデータエンジニアリングの概念、パターン、技術の情報を個別に提供します。最新情報の取得と、ファイルに保存した既知概念のプロフィールを組み合わせています。

主な機能

  1. 01データエンジニアリングの最新情報取得
  2. 02概念プロフィールの読み取りと更新
  3. 03既知情報を示す MCP リソース
  4. 04情報提供フローのプロンプト

活用シーン

  1. 01最近のデータエンジニアリング動向の確認
  2. 02既知の概念に応じた情報提供
  3. 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 の最新情報を取得するため)

セットアップ

  1. リポジトリをクローンします:

    # If you haven't already
    # git clone <repository-url>
    # cd <repository-directory>
    
  2. 依存関係をインストールします:

    npm install
    
  3. API キーを準備します: de_tutor_get_updates ツールには OpenRouter API キーが必要です。

    • OpenRouter からキーを取得します。
    • プロジェクトのルートに .env ファイルを作成します(.env.example をコピーできます)。
    • .env ファイルにキーを追加します:
      OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxxxxxxxxxxxxxxxx
      
      (プレースホルダーを実際のキーに置き換えてください。)
  4. サーバーをビルドします: 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 がサーバーから提供されたプロンプトを自動で認識することもあります。

  1. Cursor でサーバーを設定する:

    • Cursor Settings > MCP > Add new global MCP server に移動します。
    • 上記のクライアント設定例と同じ JSON を貼り付けます。その際、build/index.js へのパスがご利用のシステムで正しいことを確認してください。
  2. (任意)プロンプト用の 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.
      
  3. 接続して使用する:

    • Cursor の MCP 設定で de-tutor サーバーが有効になっていることを確認します。
    • ルールファイルを使用する場合は、新しいチャットまたはコード生成リクエスト(例:Cmd+K)を開始し、リクエストに @de-tutor-rule(またはルールファイルに付けた名前)を含めます。これにより、Cursor にルールの内容を読み込ませ、ツールの使い方を指示できます。
    • サーバーのプロンプトを利用する場合は、Cursor とのやり取りを開始するだけで構いません。サーバーが提供するツールとガイダンスプロンプトを利用できるはずです。

機能と使用方法

このサーバーでは、以下の機能を利用できます。

  • リソース(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 クライアントに、ワークフロー内でツールを使用する方法を指示します。
    1. 最新情報を取得します。
    2. メモリから既知の概念を読み取ります。
    3. 新しい情報をユーザーに提示します。
    4. ユーザーからのフィードバックに基づいてメモリを更新します。

開発とデバッグ

  • ビルド: 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 を使って、より複雑で有用なエージェント型の機能を構築するための基礎となります。

(また、🐛バグを見つけた場合は、気軽にイシューを作成してください。)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。