mcpField
K
Krep MCP Server

Krep MCP Server

ローカル
github.com/bmorphism検索184 週間前に更新

Krep MCP Server について

Krep MCP Serverは、文字列検索ツールkrepをMCPサーバーとして提供し、AIアシスタントによるファイルや文字列の検索に使えます。ファイル・文字列・件数の各モードがあり、マルチスレッドと利用可能なSIMDを活用します。

主な機能

  1. 01ファイルや文字列の検索
  2. 02パターン出現数の集計
  3. 03パターン長に応じたアルゴリズム選択
  4. 04CPUコアの自動利用
  5. 05利用可能な場合のSIMD加速

活用シーン

  1. 01ファイル内のパターン検索
  2. 02文字列の一致確認
  3. 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 アシスタントとシームレスに連携します

このコードベースが悲劇的な理由

このコードベースは、シンプルなツール(文字列検索ユーティリティのラッパー)が、不要な複雑さによって肥大化した例です。

  1. シンプルな中核、複雑な実装:実際の機能は単純ですが、過剰な設計の層に埋もれています

  2. ドキュメントの過剰:適切に構成された README 1 つで説明できるツールに、15 個ものドキュメントファイルがあります

  3. 連携の混乱:Cline、Claude Desktop、SDK の 3 つの独立した連携システムがあり、それぞれに重複したスクリプトとドキュメントがあります

  4. インストールスクリプトの乱立:設定可能なスクリプト 1 つで十分なのに、インストールスクリプトが 7 つあります

  5. エラー処理の重複:統一された方法を採用せず、複数のレベルでエラー処理が重複しています

  6. テストの分散:テストファイルが体系的に整理されず、コードベース内に散在しています

  7. 設定の重複:複数のコンポーネント間で設定ファイルと環境変数が重複しています

  8. バイナリパスの過剰探索: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...

インストール

  1. krep バイナリがインストールされていることを確認します。

    cd /path/to/krep-native
    make
    
  2. 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 サーバーは、次の手順で動作します。

  1. Model Context Protocol を通じてリクエストを受け取ります
  2. リクエストのパラメーターを解析します
  3. モードとパラメーターに基づいて適切な krep コマンドを組み立てます
  4. krep バイナリを使ってコマンドを実行します
  5. 結果を解析し、構造化された形式で返します

パフォーマンス

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"

詳しい手順と使用例については、以下を参照してください。

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

コメント

MCP は初めてですか?

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

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