0Pricing
MCP Academy · レッスン

ディスクからファイルを読み取る

ローカルファイルを動的なMCPリソースに変換します。

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

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

From Fixed to Live

Returning a hardcoded string is fine, but real servers expose actual files. You can read a file from disk and serve its contents live.

Read Inside the Handler

Your resource function simply opens the file and returns its text. Because it runs on each request, the client always gets the current content. 📂

A Basic File Resource

Open the file, read it, and return the string. The resource now reflects whatever is saved on disk at read time.

@mcp.resource("file:///notes.txt")
def notes():
    with open("notes.txt") as f:
        return f.read()

Use Pathlib Cleanly

The pathlib library reads small files in one line and handles paths safely across systems, which keeps your handler short and clear.

from pathlib import Path

@mcp.resource("file:///notes.txt")
def notes():
    return Path("notes.txt").read_text()

Handle Missing Files

A file can vanish or be renamed. Wrap the read so a missing file returns a clear error message instead of crashing the server.

try:
    return Path(p).read_text()
except FileNotFoundError:
    raise ValueError("File not found")

Mind the Encoding

Text files have an encoding. Read with utf-8 explicitly so accented and non-English characters survive the trip to the model.

Path("notes.txt").read_text(encoding="utf-8")

Watch the File Size

Returning a huge file floods the model with tokens and may hit limits. Keep served files small, or read only the part the model truly needs.

Never Trust the Path

If a path comes from input, an attacker could request files outside your folder. Always confine reads to a safe base directory you control.

Resolve Within a Base

Compute an absolute path and check it stays inside your allowed root. This blocks path traversal tricks like climbing up with dot-dot.

base = Path("data").resolve()
target = (base / name).resolve()
if base not in target.parents: raise ValueError("Denied")

Read-Only by Nature

Resources only read; they never write. Serving a file as a resource exposes its contents without ever letting the model modify the file.

Verify the Live Read

Change the file on disk, then read the URI again. Seeing the new text proves your server reads live rather than caching stale content.

Quick Check

Security check on serving files.

Recap

Read a file inside the handler so content stays live. Set utf-8, handle missing files, watch size, and confine paths to a safe root. ✅

よくある質問

「ディスクからファイルを読み取る」レッスンは無料ですか?

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

「ディスクからファイルを読み取る」で何を学びますか?

ローカルファイルを動的なMCPリソースに変換します。 ブラウザで直接実行するハンズオンコードでMCP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「ディスクからファイルを読み取る」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. リソースURIを理解する
  2. 静的なテキストリソースを提供する
  3. ディスクからファイルを読み取る
  4. 適切なMIMEタイプを設定する
← MCP Academyに戻る