Ripgrep Mcp について
Ripgrep Mcpは、開発者やコーディングエージェント向けにripgrepの検索ツールを提供するクロスプラットフォームMCPサーバーです。ルートディレクトリ制限、パス検証、出力制限により検索範囲と結果を管理できます。
主な機能
- 01複数のripgrep検索ツール
- 02ripgrepのオプションとフラグに対応
- 03全体または呼び出し単位のルート指定
- 04パス検証とディレクトリトラバーサル防止
- 05結果数、出力サイズ、実行時間の制限
- 06Windows、macOS、Linuxに対応
活用シーン
- 01プロジェクト内のコードパターンを検索
- 02一致数の集計や検索対象ファイルの一覧表示
- 03ディレクトリ外へのアクセスを防ぐ検索範囲の制限
MCP 対応
クライアントにsearch、advanced-search、count-matches、list-files、list-file-typesのツールを提供するMCPサーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| pattern | string | はい | 検索するパターン |
| root | string | いいえ | 検索範囲を限定するルートディレクトリ(任意。このディレクトリ内に検索を限定します) |
| path | string | いいえ | 検索するパス(任意。root を指定した場合、この配下である必要があります) |
| include | string | いいえ | この glob パターンに一致するファイルを含めます |
| exclude | string | いいえ | この glob パターンに一致するファイルを除外します |
| context | number | いいえ | 表示するコンテキスト行数 |
| max_matches | number | いいえ | 返す一致数の上限(デフォルト:100) |
| case_sensitive | boolean | いいえ | 大文字と小文字を区別して検索 |
| word_boundaries | boolean | いいえ | 単語全体のみを一致させます |
| file_type | string | いいえ | この種類のファイルのみを検索します |
詳細
Auu.Mcp.Rg
Windows、macOS、Linux をシームレスにサポートし、強力な検索機能と強化されたセキュリティ機能を提供する、ripgrep 用のクロスプラットフォーム MCP(Model Context Protocol)サーバーです。
特長
- 🌟 クロスプラットフォーム対応:インテリジェントなパス処理による Windows、macOS、Linux のネイティブサポート(v1.2.6)
- 🔧 検索ツール:さまざまな用途に対応する複数の検索ツール
- 📋 ripgrep の完全サポート:すべての ripgrep オプションとフラグをサポート
- 🚀 npx で実行可能:npx から直接実行できます
- 🆕 グローバルルートディレクトリ:環境変数によるサーバー全体のルートディレクトリ設定(v1.2.0)
- 🆕 強化されたセキュリティ:パスの自動検証とディレクトリトラバーサル保護(v1.2.0)
- 🆕 柔軟な設定:呼び出しごとにルートを上書きできます(v1.2.0)
- 🆕 スマートなパス処理:ルートとパスのパラメーターを適切に組み合わせ、直感的な検索範囲を実現します(v1.2.1)
- 🆕 パフォーマンス保護機能:結果数の制限(デフォルト:100)、出力サイズの制限(10MB)、タイムアウト保護(30秒)を内蔵(v1.2.1)
- 🆕 メモリ保護:メモリリークを防ぐため、出力を自動的に切り詰めます(v1.2.1)
- 🆕 インテリジェントなパス解決:Node.js のパスユーティリティを使って、クロスプラットフォームのパス正規化と検証を行います(v1.2.6)
インストール
npm install -g auu-mcp-rg
または、npx で実行します:
npx auu-mcp-rg
利用可能なツール
1. search
基本的なオプションを使った検索:
- pattern:検索パターン(必須)
- root:検索範囲を制限するルートディレクトリ(任意。検索はこのディレクトリ内に制限されます)
- path:検索するディレクトリ(任意。指定する場合は root 内である必要があり、root と組み合わせて直感的な検索範囲を指定できます)
- include:対象に含めるファイルの Glob パターン
- exclude:対象から除外するファイルの Glob パターン
- context:前後に表示するコンテキスト行数
- max_matches:返す一致結果の最大数(デフォルト:100)
- case_sensitive:大文字と小文字を区別した検索
- word_boundaries:単語全体にのみ一致
- file_type:指定したファイルタイプのみを検索
2. advanced-search
すべてのパラメーターに対応し、ripgrep の全オプションを利用できます。
3. count-matches
一致箇所を表示する代わりに件数を数えます:
- pattern:検索パターン(必須)
- root:検索範囲を制限するルートディレクトリ(任意。検索はこのディレクトリ内に制限されます)
- path:検索するディレクトリ(任意。指定する場合は root 内である必要があり、root と組み合わせて直感的な検索範囲を指定できます)
- include:対象に含めるファイルの Glob パターン
- exclude:対象から除外するファイルの Glob パターン
- case_sensitive:大文字と小文字を区別した検索
- file_type:指定したファイルタイプのみを検索
4. list-files
検索対象となるすべてのファイルを一覧表示します:
- root:検索範囲を制限するルートディレクトリ(任意。検索はこのディレクトリ内に制限されます)
- path:検索するディレクトリ(任意。指定する場合は root 内である必要があり、root と組み合わせて直感的な検索範囲を指定できます)
- include:対象に含めるファイルの Glob パターン
- exclude:対象から除外するファイルの Glob パターン
- file_type:指定したファイルタイプのみを検索
5. list-file-types
ripgrep がサポートするすべてのファイルタイプを一覧表示します。
使用例
基本的な検索
{
"name": "search",
"arguments": {
"pattern": "function",
"max_matches": 10
}
}
グローバルルートディレクトリを使った検索
サーバーで ROOT が設定されている場合、すべての検索は自動的にそのディレクトリ内に制限されます:
{
"name": "search",
"arguments": {
"pattern": "import",
"include": "*.ts",
"max_matches": 5
}
}
プロジェクト内のファイル数を数える
{
"name": "count-matches",
"arguments": {
"pattern": "TODO",
"include": "*.js"
}
}
TypeScript ファイルを一覧表示する
{
"name": "list-files",
"arguments": {
"include": "*.ts",
"file_type": "typescript"
}
}
コンテキストを指定した高度な検索
{
"name": "advanced-search",
"arguments": {
"pattern": "class.*Controller",
"include": "*.ts",
"context": 2,
"case_sensitive": true
}
}
特定の検索でルートディレクトリを上書きする
{
"name": "search",
"arguments": {
"pattern": "test",
"root": "/path/to/tests",
"include": "*.spec.js"
}
}
ルートとパスを組み合わせた検索(v1.2.1+)
root と path の両方を指定すると、自動的に組み合わせられます:
{
"name": "search",
"arguments": {
"pattern": "config",
"root": "/path/to/project",
"path": "src",
"include": "*.ts",
"max_matches": 50
}
}
これにより、/path/to/project/src ディレクトリ内を検索します。
組み込みの制限を使った安全な検索(v1.2.1+)
過剰な出力を防ぐため、すべての検索に適切なデフォルト値が自動的に適用されます:
{
"name": "search",
"arguments": {
"pattern": "import",
"path": "src"
}
}
結果は最大 100 件まで返され、タイムアウトとサイズの制限によって保護されます。
設定
基本設定
Claude Desktop の設定に追加します:
{
"mcpServers": {
"auu-mcp-rg": {
"command": "npx",
"args": ["auu-mcp-rg"]
}
}
}
ルートディレクトリの設定(推奨)
セキュリティを強化するため、デフォルトのルートディレクトリを設定し、すべての検索操作を制限します。
{
"mcpServers": {
"auu-mcp-rg": {
"command": "npx",
"args": ["auu-mcp-rg"],
"env": {
"ROOT": "/path/to/your/project"
}
}
}
}
Windows の例:
{
"mcpServers": {
"auu-mcp-rg": {
"command": "npx",
"args": ["auu-mcp-rg"],
"env": {
"ROOT": "E:\\code\\my-project"
}
}
}
}
macOS/Linux の例:
{
"mcpServers": {
"auu-mcp-rg": {
"command": "npx",
"args": ["auu-mcp-rg"],
"env": {
"ROOT": "/Users/username/my-project"
}
}
}
}
設定オプション
- ROOT:すべての検索操作に使用するデフォルトのルートディレクトリを設定します(任意ですが、推奨)
- AUU_MCP_RG_VERSION:安定性のためにバージョンを固定します(任意)
ROOT を設定すると、明示的に上書きしない限り、すべてのツールでこのディレクトリが自動的に使用されます。
クロスプラットフォーム互換性の強化(v1.2.6)
このサーバーでは、インテリジェントなパス処理により、クロスプラットフォーム互換性が大幅に向上しました。
🆕 高度なクロスプラットフォーム機能
インテリジェントなパス解決:
- プラットフォーム固有のパス形式を自動検出して処理します
- ルートディレクトリを基準に相対パスをスマートに解決します
- Node.js の
path.relative()とpath.isAbsolute()を使用して、プラットフォーム間でパスを検証します
汎用的なパスの正規化:
- ripgrep との互換性のため、Windows のバックスラッシュをスラッシュに自動変換します
- すべてのプラットフォームで一貫したパス処理を行います
- 同じ環境で混在するパス形式をサポートします
プラットフォーム固有の最適化
Windows
- ネイティブパスのサポート:Windows 形式のパス(
C:\project\src)を完全にサポートします - コマンドのエスケープ:Windows に適したコマンド引数のエスケープ処理を行います
- プロセス管理:Windows 向けに最適化されたプロセス起動を行います
macOS と Linux
- Unix パス標準:POSIX パス(
/home/user/project)をネイティブにサポートします - シェル統合:標準的な Unix シェルの動作に対応します
- パフォーマンス:Unix のプロセス管理に合わせて最適化されています
🆕 クロスプラットフォームの例
Windows の設定:
{
"mcpServers": {
"auu-mcp-rg": {
"command": "npx",
"args": ["auu-mcp-rg"],
"env": {
"ROOT": "E:\\code\\my-project"
}
}
}
}
macOS/Linux の設定:
{
"mcpServers": {
"auu-mcp-rg": {
"command": "npx",
"args": ["auu-mcp-rg"],
"env": {
"ROOT": "/home/username/my-project"
}
}
}
}
クロスプラットフォームでのパスの使用:
{
"name": "search",
"arguments": {
"pattern": "import",
"root": "E:\\code\\project", // Windows path
"path": "src/utils" // Relative path works on all platforms
}
}
🆕 技術的な改善(v1.2.6)
- パス検証の強化:信頼性の高いクロスプラットフォームの境界チェックのため、文字列照合ではなく
path.relative()を使用します - 相対パスのサポート改善:ルートディレクトリを基準とした相対パスを適切に処理します
- メモリの安全性:セキュリティ上の問題を防ぐため、パス処理を改善しました
- パフォーマンス:パス解決と検証のアルゴリズムを最適化しました
- 包括的なテスト:クロスプラットフォームのテスト範囲を大幅に拡充しました
Windows 互換性の修正
このサーバーでは、他の MCP ripgrep 実装で見つかった Windows 互換性の問題に対処しています。
- 適切なコマンドのエスケープ:Windows に適した引数のエスケープ処理を使用します
- プロセスの実行:シェルに依存せず、プロセスを直接起動します
- パス処理:スペースや特殊文字を含む Windows パスを適切に処理します
- ビルドプロセス:
chmodなどの Unix 固有のコマンドを削除しました
セキュリティとパフォーマンス機能(v1.1.0 以降)
グローバルルートディレクトリの設定
ROOT 環境変数を使用すると、すべての検索操作を特定のディレクトリに制限し、サーバー全体のセキュリティを確保できます。
{
"mcpServers": {
"auu-mcp-rg": {
"command": "npx",
"args": ["auu-mcp-rg"],
"env": {
"ROOT": "/path/to/project"
}
}
}
}
メリット:
- サーバー全体のセキュリティ:すべてのツールがルートディレクトリの境界を自動的に遵守します
- 設定不要:個々のツール呼び出しでルートディレクトリを指定する必要はありません
- 意図しないアクセスの防止:プロジェクトディレクトリ外にある機密ファイルを保護します
- サンドボックス環境:検索範囲を制御し、セキュリティを強化します
- マルチテナント対応:共有環境やチームプロジェクトに最適です
- ディレクトリトラバーサル保護:ルートディレクトリ外のパスへのアクセスを防止します
呼び出しごとのルートディレクトリの上書き
個々のツール呼び出しで、別のルートディレクトリを指定することもできます。
{
"name": "search",
"arguments": {
"pattern": "function",
"root": "/different/path/project",
"max_matches": 10
}
}
パス検証
- 自動検証:すべての検索パスをルートディレクトリに照らして検証します
- 明確なエラーメッセージ:ルートディレクトリ外へのアクセスを試みると、説明的なエラーとともにブロックされます
- 柔軟なパスのサポート:絶対パスと相対パスの両方に対応します
- クロスプラットフォーム対応:Windows、macOS、Linux のパス形式を適切に処理します
パフォーマンスとメモリ保護(v1.2.1+)
- 検索結果数の制限:過剰な出力を防ぐため、検索ごとに一致数を100件に制限します
- 出力サイズの制限:メモリの問題を防ぐため、10MBで自動的に切り詰めます
- タイムアウト保護:検索が応答しなくなるのを防ぐため、30秒でタイムアウトします
- メモリの安全性:プロセスの終了とリソース管理を自動で行います
- スマートなデフォルト設定:機能性と安全性のバランスを考慮した、適切なデフォルト設定です
スマートなパス処理(v1.2.1+)
- パスの結合:
rootとpathの両方が指定されている場合、両者を適切に結合します - 直感的な検索範囲:
root: "/project", path: "src"を指定すると、/project/srcを検索します - 検証:結合したパスもセキュリティ境界に照らして検証されます
- 後方互換性:既存の使用方法は変更なく引き続き利用できます
要件
- Node.js 18+
- ripgrepがインストールされ、PATHから利用できること
- Windows、macOS、またはLinux
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。