mcpField
M
matlab-read-documentation

matlab-read-documentation

github.com/matlab開発1.2k39 回インストール1 日前に更新
リポジトリ

matlab-read-documentation について

MATLABユーザー向けに、MathWorksのドキュメントを体系的に検索・確認するスキルです。製品固有の質問やリリース依存APIに対応し、ワークフローガイドと詳細リファレンスを段階的に使い分けます。

主な機能

  1. 014段階のドキュメント検索
  2. 02ローカル関数カタログの検索
  3. 03Web検索前にhelpを確認
  4. 04ガイドとリファレンスの選択
  5. 05リリースノートの取得

活用シーン

  1. 01製品のワークフローに必要な関数の検索
  2. 02正確な構文と引数値の確認
  3. 03リリース固有APIの検証

MCP 対応

MCP経由でMATLABの`webread`を使ってドキュメントを取得します。補助スクリプトがURLの特定とページ内容の抽出を行います。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-read-documentation

インストール後、Claude Code で/matlab-read-documentationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

manifest.yaml
scripts/
DocUtilities.p
extract_page_slugs.p
fetch_doc_page.p
fetch_product_index.p
find_replacement.p
get_local_function_list.p

詳細

MathWorks ドキュメントの利用

MathWorks の最新ドキュメントを読むための体系的な手法です。再現可能な 4 段階の手順(ローカルカタログ → help → ユーザーガイドのページ → リファレンスページ)により、ドキュメントの検索を予測可能で効率的な作業にします。MCP 経由で MATLAB の webread を使ってページを取得し、URL の検出、HTML の解析、コンテンツの抽出を行うヘルパースクリプトを使用します。

使用する場面

  • MathWorks 製品やワークフローに関する「…するにはどうすればよいですか?」という質問に回答するとき
  • URL を推測して 404 が返されたとき — このスキルを使ってインデックスから正しい URL を見つけます
  • 製品やワークフローで利用できる関数を調べる必要があるとき — ローカル関数カタログから始めます
  • 関数の構文、引数、または非推奨の状況を信頼できる情報源で確認する必要があるとき
  • 特定のワークフローについて、MathWorks のベストプラクティスを確認したいとき
  • 学習データに基づく知識が不確か、またはリリース固有の API について古くなっている可能性があるとき
  • 特定のトピックについて、MathWorks の推奨事項をユーザーが尋ねているとき
  • 最小限のツール呼び出しで、適切なページ(単なるページではなく)を見つける体系的な方法が必要なとき

使用しない場面

  • ローカルの help コマンドで十分なとき — API の構文には help function_name を優先してください。より高速で、インストールされているバージョンに対して常に正確です
  • 質問が製品固有のワークフローではなく、一般的な MATLAB プログラミングのパターンに関するもののとき
  • ローカルの help または正常に取得したページから、すでに信頼できる回答を得ているとき

迅速な方法

すべての作業に完全な 4 段階の手順が必要なわけではありません。作業に応じて最短の方法を選んでください。

作業迅速な方法省略する手順
リリースノート/新機能webread 経由で https://www.mathworks.com/help/{product}/release-notes.md を直接取得し、次に ## R20XXx セクションを抽出します手順 0~2 — スクリプトは不要です
既知の単独関数で、リファレンスページが必要以前の extract_page_slugs 呼び出しで得た URL を使うか、単純な単独関数であれば baseUrl + "ref/{name}.html" を構成します手順 0~2 — ただし、URL は推測ではなく、確認済みの情報源から取得する必要があります
製品はわかっていて、関数の一覧が必要get_local_function_list(product)手順 1~4 — ウェブは不要です
慣れていない API で、何があるか見当がつかない完全な 4 段階の手順なし — すべての手順を使います
リリースノート

リリースノートは、https://www.mathworks.com/help/{product}/release-notes.md から整形済みの Markdown として入手できます。この URL を webread で取得し、## R20XXx から次の ## R ヘッダーまでのセクションを抽出してください。一般的な製品スラッグ:matlab、simulink、ecoder、rtw、stateflow、fixedpoint、hdlcoder。

ヘルプセンターのページ階層

  • 製品のランディングページ — 簡単な説明とともに、最上位のカテゴリを一覧表示します。セクションのスラッグを見つけるために使用します。
  • 中間カテゴリページ — 1行の説明とともに、サブカテゴリへのリンクを表示します。末端のコンテンツはありません。さらに掘り下げてください。
  • 最下層のカテゴリページ — 参照グループ(関数、ブロック、アプリ)を掲載し、その後、関連トピックや例へのリンクを表示します。
  • トピックページ(ug/ または製品固有のパス)— 機能の使い方を説明する、概念ベースまたはタスクベースのコンテンツです。
  • 例のページ — サポートファイルを含む、単独で実行できる具体例です。ライブスクリプト、データファイル、モデルなどが含まれる場合があります。
  • リファレンスページ(ref/ または slref/)— 関数、ブロック、オブジェクト、またはプロパティのリファレンスです。関数リファレンス、オブジェクトリファレンス、プロパティ一覧、ブロックリファレンス、アプリリファレンスなど、複数の種類があります。
  • 入門ページ(gs/)— 製品の新規ユーザー向けの入門チュートリアルです。
  • 順序のあるトピック(STEP 1、2、3)は、意図された順序で進めるワークフローを示します。

取得するページの選び方

MathWorks のドキュメントには、異なる目的に応じた2つのコンテンツ層があります。

  • ガイドページ(ユーザーガイドのトピック。通常は ug/ の下にあります)— どの関数を、どの順序で呼び出すかを説明します。ワークフローを中心とした内容です。新しい API を学んだり、アプローチを決めたりするのに最適です。注:すべての製品が ug/ を使用するわけではありません。一部の製品(Simulink、Statistics and Machine Learning など)は異なるサブディレクトリ構成を使用します。必ずセクションインデックスから見つけてください。
  • ref/ ページ(関数/オブジェクトのリファレンス)— 各関数の呼び出し方を正確に説明します。完全な構文、引数の型、名前と値のペア、有効な列挙値、戻り値の型、引数ごとの例が掲載されています。関数がわかっていて、正確なシグネチャが必要な場合に最適です。一部の製品では製品固有のバリエーションを使用します(例:Simulink では slref/ を使用します)。

通常は両方が必要です。 ug/ ページがレシピを示し、ref/ ページが材料の仕様を示します。ref/ を参照せずに進めると、プロパティ名や引数値を推測することになります。MathWorks API は直感的でないドメイン固有の名前を使用するため、これは頻繁に失敗します(例:"FilePackaging" ではなく "ArxmlFilePackaging"、"SimulationDuration" ではなく "StopTime")。

ページの価値を示すシグナル(製品に依存しません)
シグナル価値が高い可能性価値が低い可能性
スラッグに programmatically、program-、または command-line が含まれるはい — 常にプログラムから操作できます—
スラッグに property-map-functions が含まれるはい — API のワークフローです—
スラッグに explorer、interactively、using-...editor が含まれる—はい — GUI 専用です
ページタイプがオブジェクト名または関数名を含む ref/はい — 正確なシグネチャを確認できます—
GUI とプログラム操作の両方に対応する製品のページが非常に大きい(30K 超)—GUI 向けの可能性があります — 読む前に測定してください
Main Content からフッターまでが約1500文字未満のページ—ナビゲーション用のスタブまたはリダイレクトの可能性があります
スラッグが example- で始まるどちらとも言えません — GUI ウィザードで始まるか、ライブスクリプトのコードで始まるかを確認してください
スラッグに -properties を含む ref/ ページはい — プロパティ名と値の対応表を確認できます
4 パス戦略

開始ルール: このセッションでユーザーのリクエスト、または get_local_function_list の呼び出しから関数名が分かっている場合は、ステップ 2 から開始してください。学習データの知識だけを根拠にステップ 1 を省略しないでください。関数名はリリースごとに変わるため、推測した名前では呼び出しが無駄になります。

  1. ローカルカタログで関数を検索する: get_local_function_list('product', 'keyword') を実行し、存在する関数を確認します。関数名がまだ分からない場合に限り、これを使用してください。
  2. help でシグネチャを取得する: help functionName または help namespace を実行します。help で質問への答えが得られたら、ここで終了してください。ウェブページを取得する必要はありません。
  3. 3 パス目(ug/): ワークフローのコンテキスト、つまり呼び出す関数の前後関係、関数の組み合わせ方、複数の方法から選ぶ方法を知る必要がある場合は、スラッグに programmatically を含む ug/ ページを取得します。これにより、呼び出し順序と全体的なパターンが分かります。
  4. 4 パス目(ref/): 特定の関数について help の情報が不十分な場合(出力が途中で切れている、最近のリリースで追加された名前と値の引数がない、プロパティの全列挙が必要、または find 呼び出しで有効なカテゴリが必要な場合)は、その関数の ref/ ページを取得します。
help で十分な場合(ほとんどの場合)
  • 任意の関数の構文と基本的な引数
  • ブロックの説明(help simulink/Gain)
  • クラスとオブジェクトのリファレンス(help Simulink.SimulationInput)
  • 名前空間内のすべての関数の一覧表示(help matlab.io)、またはオブジェクトのメソッドの一覧表示(methods(obj))
  • 各関数の概要説明
  • 入力/出力引数の型
  • 簡単な使用例
help だけでは不十分な場合(ウェブページを取得)
  • ウェブの ref/ ページ: 最近のリリースで追加された名前と値の引数、設定/プロパティオブジェクトのプロパティ名の全列挙、引数で有効な列挙値、find 呼び出しで有効なカテゴリ文字列、help の出力が途中で切れている、または不完全な場合。
  • ウェブの ug/ ページ: ワークフローのコンテキスト(呼び出しの前後関係)、複数の関数の組み合わせ方の理解、タスクに GUI とプログラムによる方法があり、プログラムによる方法を見つける必要がある場合、方法を選ぶためのガイドが必要な場合。

URL パターン

MathWorks のドキュメント URL は、以下のパターンに従います。推測しないでください。インデックスを使ってスラッグを確認してください。

ドキュメント URL の構築

すべてのドキュメント URL は /help/releases/R20XXx/ 以下でバージョン管理され、既定ではインストール済みの MATLAB リリースを参照します。URL の構築は fetch_product_index によって内部的に処理されるため、URL を手動で作成する必要はありません。次のいずれかの検証済み情報源からページ URL を取得してください。

  1. fetch_product_index の hrefs 出力 — 使用可能な完全な URL が直接返されます
  2. extract_page_slugs の fullUrls 出力 — セクションインデックスから取得した完全な URL

baseUrl には、すでに製品パス(例:https://www.mathworks.com/help/releases/R2026a/autosar/)が含まれています。サブパスのみを追加してください:baseUrl + "ref/name.html" または baseUrl + "ug/topic.html"。製品名を再度追加しないでください。

ページタイプのパターン
ページタイプパターン例
製品インデックス{base}/{product}/index.htmlhttps://www.mathworks.com/help/releases/R2025b/simulink/index.html
セクションインデックス{base}/{product}/{section-slug}.htmlhttps://www.mathworks.com/help/releases/R2025b/simulink/block-libraries.html
ユーザーガイドページ{base}/{product}/ug/{page-slug}.htmlhttps://www.mathworks.com/help/releases/R2025b/simulink/ug/some-topic.html
リファレンスページ{base}/{product}/ref/{function-name}.htmlhttps://www.mathworks.com/help/releases/R2025b/matlab/ref/plot.html

URL の構造は製品によって異なります。 実際のスラッグを確認するには、必ずセクションインデックスをクロールしてください。サブディレクトリ名を推測しないでください。

製品ガイドページリファレンスページ
matlabmatlab_prog/slug.html、matlab_oop/slug.html — 複数のサブディレクトリref/name.html
simulinkug/slug.htmlslref/name.html(構成パラメーターには gui/ も使用)
systemcomposerug/slug.htmlref/name.html
autosarug/slug.htmlref/name.html
stateflowug/slug.htmlref/name.html

MATLAB では、サブディレクトリのないフラットなスラッグ(例:debug-code.html)は、通常、セクションナビゲーションページです。セクションインデックスをクロールすると、href は相対パスで表示されます。完全な URL を作成するには、ベース URL を先頭に付加してください。

一般的な製品スラッグ:matlab、simulink、systemcomposer、stateflow、autosar、ecoder、fixedpoint、stats、control、signal、dsp、deeplearning、images、optim、robust、mpc、sltest、parallel-computing

スクリプト

MATLAB スクリプトは、繰り返し行う取得と解析の手順を自動化します。これらは関数ファイルであり、入力引数が必要なため、run_matlab_fileではなくevaluate_matlab_codeを使って呼び出す必要があります。

呼び出し方法

project_pathに、このスキルの/scriptsディレクトリ(このプロンプトの先頭に表示されている「このスキルのベースディレクトリ」に/scriptsを追加したパス)を設定して、evaluate_matlab_codeを使用してください。
run_matlab_fileは使用しないでください。これらは入力引数が必要な関数です。

Tool: evaluate_matlab_code
code: "[t, hrefs] = fetch_product_index('simulink', 'Modeling')"
project_path: "<base-directory-for-this-skill>/scripts"
スクリプトリファレンス
スクリプトシグネチャ目的
get_local_function_list.mresults = get_local_function_list(product, searchTerm)ローカルの MATLAB インストールから分類済みの関数一覧をすべて読み取ります(最速で、オフラインでも動作します)
fetch_product_index.m[t, hrefs, baseUrl] = fetch_product_index(product, search, rel)リリースを自動検出し、製品インデックスを取得して、セクションリンクと再利用可能なベース URL を返します
extract_page_slugs.m[slugs, fullUrls] = extract_page_slugs(sectionUrl)セクションインデックスからページのスラッグと完全な URL を抽出します
fetch_doc_page.mcontent = fetch_doc_page(url, maxChars, startChar)ドキュメントページを取得し、読みやすいテキストを抽出します(デフォルトの上限は 50K 文字です)。ページ分割するには startChar を指定します。
find_replacement.mfind_replacement(url)ページ内で非推奨または置換に関する記述を検索します
DocUtilities.m静的クラス(直接呼び出しません)共通ユーティリティ:HTML の除去、リンクの抽出、URL の解決。他のスクリプトから内部的に使用されます

ワークフロー

上記の Fast Paths テーブルを使って、省略する手順を判断してください。以下のワークフロー全体は、既存の情報がない API について、何があるか分からない場合に使用します。

Step 1 — まず help を試す(関数名が分かっている場合)

何らかの情報源から関数名が分かっている場合は、ここから始めます。

help set_param               % function reference
help Simulink.SimulationInput  % class reference

help で疑問が解決した場合は、ここで終了します。最も一般的な開始方法です。

Step 1b — カタログから関数を見つける(関数名が分からない場合)

呼び出す関数が分からない場合は、どのような関数があるかを調べます。

results = get_local_function_list('ecoder');
results = get_local_function_list('simulink', 'code generation');

Name、Purpose、Category を含むテーブルが返されます。製品のスラッグが分からない場合は、get_local_function_list('unknown') を呼び出すと、利用可能なスラッグの一覧が表示されます。その後、見つかった関数名を使って Step 1 に進みます。

Step 2 — 製品インデックスをたどって適切なページを見つける

fetch_product_index はリリースを自動検出し、ベース URL を作成して、セクションリンクを返します。

[t, hrefs, baseUrl] = fetch_product_index('simulink', 'Modeling');

3 番目の出力 baseUrl は、バージョンに対応して解決された URL です。このセッションで以降に取得するすべてのページで再利用してください。

Step 3 — セクションインデックスを取得してページのスラッグを得る

hrefs(fetch_product_index が返す)に含まれる URL を直接使用してください。URL を手動で作成しないでください。

[slugs, fullUrls] = extract_page_slugs(hrefs{2,1});
Step 4 — 特定のページを取得して内容を抽出する
content = fetch_doc_page(fullUrls{3});           % from discovered URLs

非常に大きなページでは、出力を制限してください。

content = fetch_doc_page(pageUrl, 10000);        % limit to 10K chars
Step 5 — 非推奨の通知と置換先を確認する

help に「not recommended」と表示される場合は、Web ページで推奨される置換先を確認してください。

find_replacement(baseUrl + "ref/hist.html");

手順

HTML の処理

HTML の除去は取得スクリプト(fetch_doc_page、fetch_product_index、find_replacement)で内部的に処理されます。HTML の解析を独自に実装せず、代わりに適切な取得スクリプトを呼び出してください。

URL の検出 — 推測しない
  • URL が 404 を返す場合は、1 つ上の階層(セクションインデックスまたは製品インデックス)に移動し、ページの内容からスラッグを確認します。
  • スタンドアロン関数のリファレンスページの URL(ドットが 1 つ以下:plot、set_param)は、baseUrl にすでに製品パスが含まれているため、baseUrl + "ref/{name}.html" として直接組み立てることもできます。
  • 名前空間を持つ関数またはオブジェクト(例:Simulink.SimulationInput、autosar.api.create)の場合は、該当するセクションインデックスで extract_page_slugs を使用して正しい URL を確認します。
  • その他の URL はすべて、インデックスページから確認する必要があります。fetch_product_index 関数は hrefs に完全な URL を返すため、それらを直接使用します。
変数の命名

MATLAB の組み込み関数と名前が重複する変数名(dir、input、length、size、path)は避けてください。ワークスペースですでに名前が重複している場合は、組み込み関数を呼び出す前に clear <name> を使用します。

製品固有の URL パターン
  • MATLAB:複数のサブディレクトリ(matlab_prog/、matlab_oop/、ref/)があります。サブディレクトリを含まないフラットなスラッグは、ほとんどの場合、セクションのナビゲーションページです。
  • Simulink:ガイドページには ug/、ブロック/関数のリファレンスには slref/、構成パラメーターには gui/ を使用します。
  • System Composer、Stateflow:ガイドページには ug/、リファレンスには ref/ を使用します。階層はシンプルです。
  • GUI とプログラムによる操作の両方に対応する製品:文字数が多くても、プログラムによる操作の内容とは限りません。GUI のドキュメントページには、UI 要素の説明が 20K 文字を超えるものもあります。信頼できる目印として、スラッグに programmatically または program- が含まれているか確認します。
リリース固有のドキュメント
  • すべての URL はバージョン付きです(/help/releases/R20XXx/)。fetch_product_index は、インストール済みの MATLAB リリースをデフォルトで使用します。別のバージョンを対象にするには、リリース引数(例:"R2024b")を渡します。
  • help の出力はインストール済みバージョンと一致することが保証されているため、必ず最初に確認してください。
  • Web ドキュメントに help では利用できない機能が記載されている場合、ユーザーは古いリリースを使用している可能性があります。API が存在すると決めつけず、この相違について注記してください。

Copyright 2026 The MathWorks, Inc.

コメント