mcpField
O
osdev-wiki-mcp

osdev-wiki-mcp

ローカル
github.com/0xmortuex開発ツール03 週間前に更新

osdev-wiki-mcp について

osdev-wiki-mcpは、OS開発者やカーネルコードを書くエージェント向けに、OSDev Wikiのローカル検索と閲覧を提供します。公開アーカイブをSQLiteに索引化し、ページ検索、セクション閲覧、リンク参照を可能にします。

主な機能

  1. 01一致箇所の抜粋付き全文検索
  2. 02ページのセクション構成を表示
  3. 03ページ全体または指定セクションを閲覧
  4. 04ページの被リンクと発リンクを確認
  5. 05アーカイブを取得してローカル索引を更新

活用シーン

  1. 01ページング、タイマー、割り込みコントローラーの資料検索
  2. 02特定セクションやコード例の閲覧
  3. 03略語や関連ページへのリンクの追跡

MCP 対応

MCPサーバーとして、Wiki検索、ページとセクションの閲覧、リンク確認、索引更新、状態表示のツールをクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"0xmortuex-osdev-wiki": {
"command": "uvx",
"args": [
"osdev-wiki-mcp"
],
"env": {
"OSDEV_WIKI_DIR": "<OSDEV_WIKI_DIR>"
}
}
}
}
起動コマンドuvx osdev-wiki-mcp
設定が必要な環境変数
OSDEV_WIKI_DIRWhere to keep the downloaded index (default: per-user data dir)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiosdev-wiki-mcp0.1.0

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
forcebooleanいいえ

詳細

osdev-wiki-mcp

OSDev Wikiをオフラインで検索可能にし、AI エージェントから利用できます。

wiki.osdev.orgは、趣味でオペレーティングシステムを開発する際のリファレンスです。ディスクリプターテーブル、ページング、割り込みコントローラー、タイマー、ACPI、ディスクコントローラー、ブートローダー、ツールチェーンなどを扱っています。カーネルコードを書くエージェントは、こうした詳細を記憶から再構成しようとして、ビット配置を間違えがちです。また、Wikiはボット対策チャレンジの背後にあるため、エージェント自身で閲覧することもできません。

osdev-wiki-mcpは、Wikiの公開アーカイブを一度ダウンロードしてSQLiteの全文検索でローカルにインデックス化し、エージェントが検索したり、ページ全体やその一部のセクションを読んだり、リンクをたどったりするためのツールを提供します。

出力例

これは2025-12-30のダンプから得られた実際の出力です。

> wiki_search("PIT", limit=3)
1. Programmable Interval Timer *
   The Programmable Interval Timer ([PIT]) chip (Intel 8253/8254) basically consists of an oscillator…
2. PC Speaker
   …When the [PIT] interrupts you, you need to program [PIT] timer 2 so that…
3. APIC Timer
   …Real Time Clock, TimeStamp Counter, [PIT] or even polling CMOS registers. In this tutorial…

> wiki_page("IDT", section="Gate Descriptor", max_chars=900)
# Interrupt Descriptor Table
https://wiki.osdev.org/Interrupt_Descriptor_Table · last edited 2025-06-05 · categories: X86 CPU, Interrupts
('IDT' redirects to 'Interrupt Descriptor Table'; 'Gate Descriptor' appears 2 times; showing
section 4 under 'Structure on IA-32'. Also: section 8 under 'Structure on x86-64')

### Gate Descriptor

Each entry in the table has a complex structure:

Gate Descriptor (32-bit):
63..48 | 47 | 46..45 | 44 | 43..40 | 39..32
Offset 31..16 | P | DPL 1..0 | 0 | Gate Type 3..0 | Reserved
31..16 | 15..0
Segment Selector 15..0 | Offset 15..0

- Offset: A 32-bit value, split in two parts. It represents the address of the entry point ...
[... section truncated]

[Cut at max_chars=900; the full text is 1567 chars. Call again with max_chars=1767 to read the rest.]

この出力がエージェントにとって役立つ点は次のとおりです。

  • 略語も機能します。 「PIT」と「IDT」はWiki内のリダイレクトです。リダイレクトは転送先の別名としてインデックス化されるため、略語から目的のページを最初に見つけられます。
  • ビット配置テーブルも読みやすく表示されます。 Wikiでは、ディスクリプターやページテーブルの配置をHTMLテーブルで示しています。これらは1行ずつ表示され、ビット範囲は63..48のように示されます。
  • 曖昧さが報告されます。 ページ内に同じ見出しが2回登場する場合、もう一方の場所もエージェントに通知されます。
  • 切り詰められた理由がわかります。 結果が途中で切れている場合、次に呼び出すべきものが正確に示されます。

インストール

pip install osdev-wiki-mcp
osdev-wiki-mcp --update          # one-time: download (~5 MB) and index (~15 s)
claude mcp add osdev-wiki -- osdev-wiki-mcp

--updateは省略できます。インデックスがまだない場合は、ほかのすべてのツールがwiki_updateを呼び出すようエージェントに伝えます。エージェント自身がwiki_updateを呼び出すこともできます。

インデックス(約18 MB)は、Windowsでは%LOCALAPPDATA%\osdev-wiki-mcp、macOSでは~/Library/Application Support/osdev-wiki-mcp、それ以外では$XDG_DATA_HOME/osdev-wiki-mcp(または~/.local/share/osdev-wiki-mcp)に保存されます。別の場所に保存するには、OSDEV_WIKI_DIRを設定してください。SQLite FTS5を備えたPython 3.10以降が必要です。python.orgのビルド、uvで管理されたビルド、大半のディストリビューションのビルドにはFTS5が含まれており、含まれていない場合はサーバーが通知します。

ツール

ツール機能
wiki_search一致箇所のスニペットを含む、順位付けされた全文検索です。タイトルとリダイレクト名が最も重視され、タイトルが完全一致した場合は*で示されます。
wiki_sectionsページのアウトラインです。番号付き見出しと各見出しのサイズを表示します。
wiki_pageページ全体をプレーンテキストで表示するか、番号または見出しで指定したセクションと、その下位セクションを表示します。コードブロックはそのまま保持され、リダイレクト先もたどります。
wiki_linksそのページがリンクしている先(存在しないページへのリンクには印を付けます)と、そのページにリンクしている元(リダイレクト経由のリンクも含みます)を表示します。
wiki_update最新のダンプを取得し、インデックスを再構築します。インデックスがすでに最新の場合は何もしません。
wiki_statusソースとなるダンプ、ページ数、インデックスの経過時間と保存場所を表示します。

コンテンツの取得元とライセンス

wiki.osdev.orgはクロールできません。APIがCloudflareのボット対策チャレンジの背後にあるためです。その代わりに、wiki_updateはarchive.orgにあるWikiの最新のWikiTeamダンプ(wiki-wiki.osdev.org-YYYYMMDDという名前のアイテム)を探します。そのダンプの履歴ファイルをダウンロードし、archive.orgのマニフェストとMD5を照合してから、各記事の最新リビジョンを保持します。ダンプは定期的に作成されるため、インデックスが稼働中のWikiより数か月遅れている場合があります。利用中のダンプはwiki_statusで確認できます。

**このパッケージにはWikiのコンテンツは含まれていません。**公開ダンプをお使いのマシンにダウンロードし、ローカルでインデックス化します。ライセンスについては、Wiki自身のOSDev Wiki:Copyrightsページによると、2011年6月6日以降に追加されたコンテンツはCC0で公開されています。OSDev Wiki:Licenseページには、古い素材がその方針より前に作成されたため、*「このWikiのコンテンツには複数のライセンスが混在している」*と記載されています。すべてのコンテンツはOSDev Wikiとその貢献者に帰属します。検索結果にはwiki.osdev.org上のページへのリンクが含まれます。

(なお、GitHub上のosdev0/wikiは別個の無関係なWikiプロジェクトであり、wiki.osdev.orgのミラーではありません。)

テスト

pip install -e ".[test]" "ruff==0.16.0" "mypy==2.3.0"
ruff check src tests && mypy --strict src
pytest tests

ユニットテストでは、ダンプの実際の形式を使った小さなフィクスチャとして、 tests/fixtures/mini-wiki.xml を使用します。このフィクスチャには、履歴が複数の <page> 要素に分割されたページが含まれています。これは、WikiTeam のダンプで長い履歴を保存する方法です。OSDEV_WIKI_REAL_DIR にビルド済み インデックスの場所が指定されている場合、実際の Wiki を対象にランキングテストを実行します。このテストでは、OS 開発者が実際に尋ねる 14 個の質問(「PIT」「GDT のチュートリアル」「ページフォールトのエラーコード」「ロングモードに入る方法」など)を確認し、該当するページが上位 3 位以内にランクインする必要があります。CI でも実際のインデックスをビルドし、このテストを実行します。

ライセンス

コードには MIT ライセンスが適用されます。Wiki のコンテンツは含まれていません。上記をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。