MCP Academy · レッスン

読み取り時にコンテンツを生成する

リクエストされた時点でリソースの本文を生成します。

レッスン 2/413 ステップ

「読み取り時にコンテンツを生成する」はCoddyKit上の無料MCP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMCP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 MCP Academyコースには全4レッスンが含まれています。

先に作らず、必要なときに作る

動的なresourceは固定の本文を保存しません。クライアントが実際に読み取りを要求したときだけ、コンテンツがオンデマンドで計算されます。⚡

読み取りが処理を開始する

resource関数は読み取りリクエストの瞬間に実行されます。クライアントが読むまで何も起きないため、誰も必要としないコンテンツを作る無駄がありません。

本文を返す

関数が返す値が、そのままresourceのコンテンツになります。文字列を返すと、クライアントはそのテキストをresourceの本文として受け取ります。

@mcp.resource("time://now")
def now() -> str:
    return datetime.now().isoformat()

読み取るたびに最新になる

本文は毎回作り直されるため、モデルは常に最新のデータを確認できます。時刻を2回読み取れば、異なるタイムスタンプが得られます。

URIの変数を使う

読み取り時の生成とテンプレートを組み合わせます。取得したパラメーターによって計算内容が変わるため、同じ関数でURIごとに調整されたコンテンツを提供できます。

@mcp.resource("greeting://{name}")
def greet(name: str) -> str:
    return f"Hello, {name}!"

どこからでも取得する

読み取り時に、データベースへの問い合わせ、APIの呼び出し、ファイルの読み込みなどの処理を実行できます。その処理の結果を本文として返します。

@mcp.resource("stats://summary")
def summary() -> str:
    return db.fetch_summary()

待ち時間があるならAsyncにする

コンテンツの作成でI/Oの待機が発生するなら、関数をasyncにします。ネットワーク呼び出しを待つ間も、サーバーは他の読み取りに対応できます。

@mcp.resource("feed://latest")
async def latest() -> str:
    return await fetch_feed()

返すテキストの形を整える

本文の形式は自分で決めます。モデルが構造化データをきれいに扱う必要がある場合は、JSONテキストを返すのが一般的です。

import json

def report() -> str:
    return json.dumps({"ok": True})

すばやく処理する

読み取りは軽快に感じられるべきです。処理が重い場合は、結果をcacheして、繰り返しの読み取りで毎回高コストな計算をしないようにします。

データがない場合に対応する

要求されたものが存在しない場合はどうしますか?関数からエラーを発生させることで、無効なデータを返すのではなく、resourceを読み取れなかったことをクライアントに伝えます。

def get_doc(doc_id: str) -> str:
    if doc_id not in store:
        raise ValueError("not found")
    return store[doc_id]

これが重要な理由

読み取り時の生成により、静的なアイデアがデータを映すライブな窓になります。モデルは古いスナップショットではなく、常に現在正しい情報を読み取れます。🎯

確認問題

動的なresourceの本文はいつ生成されますか?

振り返り

resource関数から値を返すと、読み取り時にコンテンツが生成されることを学びました。毎回、モデルに新鮮で計算済みのデータを提供できます。次は、一覧表示されるresourceとテンプレート化されたresourceの違いです。🚀

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「読み取り時にコンテンツを生成する」レッスンは無料ですか?

はい。「読み取り時にコンテンツを生成する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、MCP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 MCP Academyコースには全4レッスンが含まれています。

「読み取り時にコンテンツを生成する」で何を学びますか?

リクエストされた時点でリソースの本文を生成します。 ブラウザで直接実行するハンズオンコードでMCP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

MCP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのMCP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「読み取り時にコンテンツを生成する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このMCP Academyレッスンでコードを書いて実行できますか?

はい。すべてのMCP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. パラメーター付きリソースURI
  2. 読み取り時にコンテンツを生成する
  3. 一覧型リソースとテンプレート型リソース
  4. 更新をクライアントに通知する
← MCP Academyに戻る