読み取り時にコンテンツを生成する
リクエストされた時点でリソースの本文を生成します。
「読み取り時にコンテンツを生成する」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- パラメーター付きリソースURI
- 読み取り時にコンテンツを生成する
- 一覧型リソースとテンプレート型リソース
- 更新をクライアントに通知する