Krep MCP Server について
Krep MCP Serverは、文字列検索ツールkrepをMCPサーバーとして提供し、AIアシスタントによるファイルや文字列の検索に使えます。ファイル・文字列・件数の各モードがあり、マルチスレッドと利用可能なSIMDを活用します。
主な機能
- 01ファイルや文字列の検索
- 02パターン出現数の集計
- 03パターン長に応じたアルゴリズム選択
- 04CPUコアの自動利用
- 05利用可能な場合のSIMD加速
活用シーン
- 01ファイル内のパターン検索
- 02文字列の一致確認
- 03ファイル内のパターン出現数の集計
MCP 対応
MCP経由で統合検索ツールを公開し、検索対象、パターン、ファイル・文字列・件数のモードを指定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Krep MCP サーバー
infinity-topos 環境向けの、MCP(Model Context Protocol)統合に対応した高性能文字列検索ユーティリティです。krep をラップしたもので、grep などの従来のツールを大幅に上回る超高速パターンマッチングユーティリティです。
THE KREP-MCP-SERVER ABSURDITY DIAGRAM
====================================
+-----------------------------------------------------+
| |
| The KREP MCP Redundancy Zone |
| |
+-----^--------------------+------------------------+-+
| | |
+-----------+----------+ +------+-------------+ +------+-------+
| | | | | |
| M E T A D A T A | | F U N C T I O N | | B I N A R Y |
| E X P L O S I O N | | N A M E C H A O S| | H U N T |
| | | | | |
+-----+----------+-----+ +---+-----------+----+ +------+-------+
| | | | |
v v v v v
+--------+--+ +----+-----+ +---+----+ +---+-----+ +----+------+
| | | | | | | | | |
| "Unified" | | 37 Paths | | krep | |krepSearch| | 5 Error |
| Function | | To Find | | | |krepMatch | | Handlers |
| That Does | | The Same | | | |krepCount | | For |
| 3 Things | | Binary | | | | | | 1 Error |
| | | | | | | | | |
+-----------+ +----------+ +--------+ +----------+ +-----------+
+-----------------------------------------------------+
| |
| Configuration & Shell Script Hell |
| |
+-----^--------------------+------------------------+-+
| | |
+-----------+----------+ +------+-------------+ +------+-------+
| | | | | |
| 3 Scripts to | | Integer | | Test Mode |
| Install 1 Thing | | Arithmetic in | | that Mocks |
| | | Shell that says | | Success When|
| | | 0 + 0 = Syntax | | Everything |
| | | Error | | Fails |
+----------------------+ +--------------------+ +--------------+
"It's not redundant if it's resilient!"
- MCP Engineer, probably
概要
Krep MCP サーバーは、高性能文字列検索ユーティリティである krep バイナリへの統一インターフェースを提供します。grep に似ていますが、最適化されたアルゴリズムとマルチスレッド機能を備えています。Model Context Protocol を通じて krep の機能を公開するため、AI アシスタントはファイルや文字列を効率よくパターン検索できます。
特長
- 高性能な検索:パターンの長さに応じて選択される最適化アルゴリズム(KMP、Boyer-Moore-Horspool、Rabin-Karp)を使用します
- ハードウェアアクセラレーション:利用可能な場合、SIMD 命令(x86/x64 では SSE4.2/AVX2、ARM では NEON)を活用します
- 最適化されたマルチスレッド処理:最大限の並列検索性能を得るため、利用可能なすべての CPU コアを自動的に使用します
- 統一インターフェース:複数のモード(ファイル検索、文字列検索、件数のみ)に対応した単一の関数を提供します
- MCP 統合:Model Context Protocol を通じて AI アシスタントとシームレスに連携します
このコードベースが悲劇的な理由
このコードベースは、シンプルなツール(文字列検索ユーティリティのラッパー)が、不要な複雑さによって肥大化した例です。
-
シンプルな中核、複雑な実装:実際の機能は単純ですが、過剰な設計の層に埋もれています
-
ドキュメントの過剰:適切に構成された README 1 つで説明できるツールに、15 個ものドキュメントファイルがあります
-
連携の混乱:Cline、Claude Desktop、SDK の 3 つの独立した連携システムがあり、それぞれに重複したスクリプトとドキュメントがあります
-
インストールスクリプトの乱立:設定可能なスクリプト 1 つで十分なのに、インストールスクリプトが 7 つあります
-
エラー処理の重複:統一された方法を採用せず、複数のレベルでエラー処理が重複しています
-
テストの分散:テストファイルが体系的に整理されず、コードベース内に散在しています
-
設定の重複:複数のコンポーネント間で設定ファイルと環境変数が重複しています
-
バイナリパスの過剰探索:1 か所にあるべき単一のバイナリを、37 個もの異なるパスで検索します
本来あるべき姿:
┌──────────────────────┐
│ krep-mcp-server │
│ ┌────────────────┐ │
│ │ index.js │ │
│ │ - one function│ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ README.md │ │
│ │ - clear docs │ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ install.sh │ │
│ │ - one script │ │
│ └────────────────┘ │
└──────────────────────┘
プロジェクト構成
実際のプロジェクト構成は次のとおりです。
krep-mcp-server/
├── CLINE_README.md
├── CLINE_SETUP.md
├── CLAUDE_DESKTOP_INTEGRATION.md
├── CLAUDE_DESKTOP_README.md
├── EXAMPLES.md
├── IMPLEMENTATION_SUMMARY.md
├── INSTALL_NOW.md
├── LIFECYCLE_DESIGN.md
├── MCP_COMPLIANCE.md
├── MCP_URIS.md
├── README.md
├── SETUP_CLAUDE_DESKTOP.md
├── TESTING_STRATEGY.md
├── THREAD_OPTIMIZATION.md
├── analysis/
│ └── index.tree.json
├── auto-install-claude.sh
├── cline-config.js
├── direct-install.sh
├── eslint.config.js
├── fix-claude-desktop.sh
├── go-integration/
│ ├── example/
│ └── krep.go
├── install-claude-desktop.sh
├── install-cline-integration.sh
├── install-sdk-integrations.sh
├── jest.config.js
├── just-krep.sh
├── mcp-config.json
├── package-lock.json
├── package.json
├── python-integration/
│ └── krep_mcp_client.py
├── run-claude-desktop.sh
├── run-claude-integration.sh
├── run-cline-mcp-server.sh
├── run-cline-test.sh
├── run-tests.sh
├── run.sh
├── sdk-integration.js
├── src/
│ ├── index.js
│ ├── index.min.js
│ ├── mcp_server.js
│ └── mcp_server.min.js
├── Support/
│ └── Claude/
├── test/
│ ├── benchmark.js
│ ├── fixtures/
│ ├── integration/
│ ├── mcp_benchmark.js
│ ├── mock-server.js
│ ├── unit/
│ └── utils.js
└── various test scripts...
インストール
-
krep バイナリがインストールされていることを確認します。
cd /path/to/krep-native make -
MCP 設定ファイルで MCP サーバーを設定します。
{ "mcpServers": { "krep": { "command": "node", "args": [ "/path/to/krep-mcp-server/src/index.js" ], "env": { "CLAUDE_MCP": "true", "KREP_PATH": "/path/to/krep-native/krep", "DEBUG": "true" }, "description": "High-performance string search utility with unified interface", "disabled": false, "autoApprove": [ "krep" ] } } }
使用方法
krep MCP サーバーは、統一された単一の関数を公開します。
<use_mcp_tool>
<server_name>krep</server_name>
<tool_name>krep</tool_name>
<arguments>
{
"pattern": "search pattern",
"target": "file path or string to search",
"mode": "file|string|count",
"caseSensitive": true|false,
"threads": null // Automatically uses all CPU cores if not specified
}
</arguments>
</use_mcp_tool>
パラメーター
- pattern(必須):検索するパターン
- target(必須):検索対象のファイルパスまたは文字列
- mode(任意):検索モード
file(デフォルト):ファイルを検索しますstring:文字列を検索しますcount:一致件数のみを数えます
- caseSensitive(任意):大文字と小文字を区別するかどうか(デフォルト:true)
- threads(任意):使用するスレッド数(デフォルト:CPU コア数に基づいて自動検出)
例
詳しい使用例とパターンについては、examples.md を参照してください。
仕組み
krep MCP サーバーは、次の手順で動作します。
- Model Context Protocol を通じてリクエストを受け取ります
- リクエストのパラメーターを解析します
- モードとパラメーターに基づいて適切な krep コマンドを組み立てます
- krep バイナリを使ってコマンドを実行します
- 結果を解析し、構造化された形式で返します
パフォーマンス
Krep は、高性能なパターン検索を実現するよう設計されています。
- アルゴリズムの選択:パターンの長さに基づいて最適なアルゴリズムを自動的に選択します
- 非常に短いパターン(3 文字未満)には KMP(Knuth-Morris-Pratt)
- 中程度の長さのパターン(3~16 文字)には Boyer-Moore-Horspool
- 長いパターン(16 文字超)には Rabin-Karp
- ハードウェアアクセラレーション:利用可能な場合は SIMD 命令を使用します
- 動的マルチスレッド:利用可能なすべての CPU コアを自動的に活用し、並列検索のパフォーマンスを最適化します
Cline VSCode 拡張機能との統合
krep-mcp-server は Cline VSCode 拡張機能と統合でき、VSCode 環境から高性能な文字列検索機能を直接使用できます。
Cline へのインストール
Cline との統合を設定する自動インストールスクリプトを用意しています。
# Install the integration
./install-cline-integration.sh
# Test the integration before installing
./run-cline-test.sh
# Uninstall the integration
./uninstall-cline-integration.sh
Cline での krep の使用
統合すると、Cline の会話で krep を直接使用できます。
/krep krep pattern="function" target="/path/to/search" mode="file"
詳しい手順と使用例については、以下を参照してください。
- CLINE_SETUP.md - セットアップ手順
- CLINE_README.md - 使用ガイド
Infinity Topos との統合
Krep MCP Server は、infinity-topos 環境内でシームレスに動作するよう設計されています。
- Babashka との統合:Babashka を使用して検索結果を処理します
- Say との統合:Say MCP サーバーを使用して検索結果を音声で読み上げます
- Coin-Flip との統合:ランダム化を使用して検索戦略を決定します
開発
環境変数
CLAUDE_MCP:「true」に設定すると、MCP モードで実行しますKREP_PATH:krep バイナリへのパスDEBUG:「true」に設定すると、詳細なログを出力しますKREP_TEST_MODE:「true」に設定すると、モック応答を使用するテストモードで実行しますKREP_SKIP_CHECK:「true」に設定すると、krep バイナリの有無の確認をスキップします
HTTP サーバーモード
MCP モードで実行していない場合、サーバーは次のエンドポイントを備えた HTTP サーバーを起動します。
GET /health:ヘルスチェックエンドポイントGET /:サーバー情報POST /search:ファイル内のパターンを検索しますPOST /match:文字列内のパターンを照合しますGET /performance:パフォーマンス情報GET /algorithm-selection:アルゴリズム選択ガイド
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。