コンテンツにスキップ

read_local_files

プロジェクト内のファイル(または設定された filesystem MCP サーバーが参照できる任意の場所)を読み取り、その内容に関する質問に回答します — MCP バックの stdlib Skill の標準的な例です。

使う場面

  • ユーザーがファイル名やパスでファイルについて質問するとき: 「pyproject.toml には何が宣言されていますか?」「README のライセンスセクションを要約してください。」
  • リクエストがファイルシステム系で、設定済みの filesystem サーバーが利用可能な場合、ルーターは read_local_files を発行します。

使わない場面

  • プロジェクト全体にわたる自由形式のコード検索 — それは web_research や grep 系の op であり、単一ファイルの読み取りではありません。
  • OS がデフォルトの file.read パーミッションで直接読み取る .reyn/ 内のファイル — MCP を経由する必要はありません。
  • バイナリファイル。基盤となるツールは read_text_file です。

必要なセットアップ

セットアップチェックリスト

  1. MCP filesystem サーバーreyn.yamlmcp.servers.filesystem を追加します(以下のブロックを参照)。
  2. パーミッションの事前承認reyn.yamlpermissions: ブロックに mcp.filesystem: allow を追加します。 これがないと、Reyn は MCP 呼び出しのたびにインタラクティブなプロンプトを表示します。ヘッドレス / 非 TTY 環境(CI、stdin パイプ、dogfood スクリプト)ではプロンプトに回答できず、すべての呼び出しが permission_denied を返し Skill は空の状態で終了します。
  3. 完全な動作例は cookbook/configs/with-mcp.yaml を参照してください — プロジェクトルートにコピーして reyn.yaml にリネームしてください。

reyn.yamlfilesystem という正確な名前で MCP サーバーが設定されている必要があります。 以下のブロックを既存の reyn.yaml に貼り付けてください(mcppermissions の両セクションが必要です)。

permissions:
  mcp.filesystem: allow   # ヘッドレス / 非 TTY 実行に必要

mcp:
  servers:
    filesystem:
      type: stdio
      command: npx
      args: ["-y", "@modelcontextprotocol/server-filesystem", "."]

[mcp] extra のインストールを含むセットアップの完全な手順は How-to: MCP サーバーを使う を参照してください。

Phase

Phase 用途
read_and_respond エントリー Phase。要求されたパスを解決し、filesystem に対して mcp op を発行し、レスポンスをフォーマットします。file_content_response で finish するか、フォローアップのために遷移します。

この Phase は frontmatter に permissions.mcp: [filesystem] を宣言しています。

最終出力: file_content_response

フィールド 用途
path string 読み取ったパス(サーバーが解決したもの)
content string ファイルの内容、またはそれから導出した回答
summary string(省略可能) ユーザーが生のテキストではなく要約を求めた場合の 1 段落の概要

このルートにリダイレクトされるプロンプトの例:

  • 「README.md を読んで、reyn とは何かを教えてください。」
  • LICENSE に記載されているライセンスは何ですか?」
  • docs/concepts/principles.md の哲学セクションを要約してください。」

このルートにリダイレクトされないプロンプトの例:

  • 「リポジトリ内のすべての TODO コメントを探してください。」→ より広い検索。単一ファイルの読み取りではありません。
  • .reyn/events.jsonl の中身は何ですか?」→ デフォルトの file.read が処理します。MCP 不要。

ソース

src/reyn/stdlib/skills/read_local_files/

関連情報