🚀 Local-Wikipedia
Local-Wikipediaは、Wikipediaをオフラインで利用できるようにするMCPサーバーです。一度ダウンロードすれば、記事を検索して読むことができます。
これが重要な理由は以下の通りです。
- Wikipedia全体の全文検索
- ほとんどのMCPサーバーは、正確なタイトル一致と基本的なリダイレクト処理のみをサポートしています。
- Local-Wikipediaは全文をローカルに保存するため、本当の全文検索を実行できます。
- 一度ダウンロードすれば、インターネットがなくても利用可能
- データがローカルに保存されているため、オフラインでもWikipediaの記事を検索して読むことができます。
- 高い検索頻度に対応
- Web APIのレート制限がないため、好きなだけ検索を繰り返して改良することができます。
- クエリを柔軟に解釈し、繰り返し検索を行うユースケースに最適です。
- 全文がローカルにあるため、拡張が容易
- コーパス全体が手元にあるため、他のMCPサーバーでは難しい機能をここでは簡単に実装できます。
- 他のMCPサーバーは依存するWeb APIに制約される可能性がありますが、Local-Wikipediaはそのような制約を受けません。
- 例えば、「ランダムな記事を取得する」機能を追加するのは簡単です。
- コーパス全体が手元にあるため、他のMCPサーバーでは難しい機能をここでは簡単に実装できます。
このMCPサーバーは、小規模なローカルLLMとうまく組み合わせるように設計されています。大規模なLLMが利用できない環境でも、柔軟にWikipediaを検索して情報を取得することができます。我々は、Gemma 3n E4Bというコンパクトなモバイル向けモデルで検証しており、CPUのみの環境でも高速に動作します。
小規模LLMにやさしいように、いくつかの配慮がなされています。
- 引数が最小限の2つのツールのみを提供するため、LLMが確実に呼び出すことができます。
- ヒューリスティックなクエリ修正機能により、LLMからの過剰指定またはノイズの多い入力をクリーンアップします。
- コンテキストウィンドウが短く、計算資源が限られている場合でも高速に動作するように、簡潔で状況に応じた出力を提供します。
- 高速な検索と低メモリ使用のための高度なDBインデックスを使用しています。初期セットアップには少し時間がかかりますが、一度完了すれば高速に動作します。
🚀 クイックスタート
✨ 主な機能
このMCPサーバーは以下の2つのツールを提供します。
search_article
指定されたタイトルで記事を柔軟に検索し、適切な結果を返します。複数の検索戦略が1つのツールに統合されているため、LLMがツールを簡単に使用できます。
検索方法には以下のものがあります。
- 正確なタイトル一致
- 正確なリダイレクト一致
- 部分的なタイトル一致
- 部分的なリダイレクト一致
- 本文の全文検索
1と2の場合は、記事の冒頭部分(要約)が返されます。3、4、5の場合は、最大20件の結果が返されます。
また、LLMが誤って余分なまたは関係のない詳細をツールに渡した場合に備えて、ヒューリスティックなクエリ修正機能もあります。
read_random_article
指定された言語版のWikipediaからランダムな記事を取得します。
📦 インストール
すべてをDocker Composeでセットアップします。以下の手順に従ってください。
DockerとDocker Composeがインストールされていることを確認してください。
git clone https://github.com/soukouki/local-wikipedia.git
cd local-wikipedia
docker-compose up
初回実行時には、config.yamlで指定された言語のWikipediaデータがダウンロードされ、インデックスが作成されます。これには時間がかかることがあります。日本語の場合は約数十分、英語の場合は数時間かかることがあります。ダウンロードには安定した光回線を使用することをお勧めします。
セットアップが完了すると、MCPサーバーが起動します。デフォルトでは、ポート29423で待機します。以下のように接続します。
{
"servers": {
"local-wikipedia": {
"url": "http://localhost:29423"
}
}
}
🔧 技術詳細
Local-Wikipediaは、公式のWikipediaダンプデータ(ページとリダイレクト)と、HuggingFaceFW/finewiki · Datasets at Hugging Faceで公開されているMarkdown形式の全文データセットを使用しています。
全文検索には、PGroongaを使用しており、日本語と英語の両方で高速かつメモリ効率の良い検索を提供します。
📄 ライセンス
- 現在のLocal-Wikipediaの実装は、パブリックAPIアクセス用に設計されていません。APIを外部に公開する場合は、セキュリティ上の理由から適切なコード修正を行うことをお勧めします。
- Wikipediaのコンテンツは、Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0) とGNU Free Documentation License (GFDL) の両方のライセンスの下で提供されています。













