Includes test client integration for Ollama-based agents to verify MCP server functionality and demonstrate tool-compatible model usage with local Wikipedia search.
Provides offline full-text search capabilities for Wikipedia content using BM25 algorithm, enabling searches through locally-indexed articles without requiring external API calls or internet connectivity.
Local Search MCP Server
A standalone, offline Wikipedia search server implementing the Model Context Protocol (MCP). This server enables AI assistants to search through locally-indexed Wikipedia content without requiring external API calls or internet connectivity.
Features
Completely Offline: No external API dependencies (Google Search, etc.)
Free & Fast: Uses BM25 algorithm for efficient full-text search
MCP Compatible: Works with any MCP-compatible client (Claude Desktop, etc.)
Ollama Integration: Includes test client for Ollama-based agents
Easy Setup: Simple installation with
uvpackage manager
Architecture
Installation
Prerequisites
Python 3.10 or higher
uv package manager
(Optional) Ollama with a tool-compatible model (e.g., command-r) for testing
Setup
Clone the repository:
Install dependencies:
Build the Wikipedia index (first run only):
This will download English Wikipedia (~6.8M articles, ~20GB) and create a BM25 index in the data/ directory. The initial build takes significant time and disk space.
Usage
Running the MCP Server
The server will:
Load the pre-built Wikipedia index
Start listening for MCP requests on stdio
Provide the
search_wikipediatool
Testing with Ollama
Simple Test (No LLM)
This tests the MCP connection and performs a direct search.
Full Agent Test (Requires Ollama)
Expected output:
Integration with Claude Desktop
Add this to your Claude Desktop MCP configuration:
Then restart Claude Desktop and you can use the Wikipedia search tool in your conversations.
Project Structure
Available Tools
search_wikipedia
Search English Wikipedia for a given query using BM25 algorithm.
Parameters:
query(string, required): Search keywordstop_k(integer, optional): Number of results to return (default: 3, max: 10)
Returns: Formatted search results with titles, Wikipedia URLs, and content snippets.
Example:
Customization
Using Simple English Wikipedia (for development)
For faster development/testing, use the lightweight Simple English Wikipedia:
Edit src/indexer.py:
This reduces disk space to ~500MB and builds in a few minutes.
Adjusting Index Size
You can limit the number of articles for testing:
Development
Running Tests
Rebuilding Index
Delete data/wiki_index.pkl and restart the server.
Troubleshooting
Index Not Building
Check disk space (needs ~500MB for Simple Wikipedia, ~20GB for full)
Ensure stable internet connection for initial download
Check Python version (3.10+ required)
Ollama Connection Fails
Verify Ollama is running:
ollama listEnsure a tool-compatible model is installed:
ollama pull command-rCheck Ollama API is accessible:
curl http://localhost:11434
MCP Server Not Starting
Check dependencies:
uv syncVerify Python path in MCP config
Check for port conflicts
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details
日本語版
概要
ローカル環境で動作する Wikipedia 検索 MCP サーバーです。外部 API に依存せず、完全にオフラインで動作します。
特徴
完全オフライン: インターネット接続不要
無料・高速: BM25 アルゴリズムによる効率的な全文検索
MCP 互換: Claude Desktop などの MCP 対応クライアントで使用可能
Ollama 統合: Ollama を使ったテストクライアント付属
簡単セットアップ:
uvによる簡単インストール
インストール
必要要件
Python 3.10 以上
uv パッケージマネージャー
(オプション) テスト用の Ollama とツール対応モデル(例: command-r)
セットアップ手順
リポジトリをクローン:
依存関係をインストール:
Wikipedia インデックスを構築(初回のみ):
これにより英語版 Wikipedia(約680万記事、約20GB)がダウンロードされ、data/ ディレクトリに BM25 インデックスが作成されます。初回構築には時間とディスク容量が必要です。
使い方
MCP サーバーの起動
サーバーは以下を実行します:
構築済み Wikipedia インデックスを読み込み
標準入出力で MCP リクエストを待機
search_wikipediaツールを提供
Ollama を使ったテスト
シンプルテスト(LLM なし)
MCP 接続と検索機能をテストします。
エージェントテスト(Ollama 必要)
Claude Desktop との統合
Claude Desktop の MCP 設定に以下を追加:
Claude Desktop を再起動すると、会話内で Wikipedia 検索が使えるようになります。
利用可能なツール
search_wikipedia
BM25 アルゴリズムを使って Wikipedia を検索します。
パラメータ:
query(文字列, 必須): 検索キーワードtop_k(整数, オプション): 返す結果の数(デフォルト: 3、最大: 10)
戻り値: タイトル、URL、本文スニペットを含む検索結果
カスタマイズ
完全版 Wikipedia を使用
src/indexer.py を編集:
注: 約20GB のディスクスペースと長い構築時間が必要です。
トラブルシューティング
インデックスが構築されない
ディスク容量を確認(Simple 版で約500MB、完全版で約20GB必要)
初回ダウンロード用のインターネット接続を確認
Python バージョンを確認(3.10以上必要)
Ollama 接続エラー
Ollama が起動しているか確認:
ollama listllama3.2 がインストールされているか確認:
ollama pull llama3.2Ollama API にアクセス可能か確認:
curl http://localhost:11434
ライセンス
MIT License