MCP Server (Language Server Protocol) について
コード参照を検索するTypeScript製MCPサーバーです。Webとターミナルの画面を備え、ripgrepが使えない場合はgrepまたはNode.jsによる検索に切り替えます。
主な機能
- 01ripgrepによるコード参照検索
- 02Web検索インターフェース
- 03ターミナル検索インターフェース
- 04ファイル種別ごとに結果を分類
- 05検索方式のフォールバック
- 06開発時のホットリロード
活用シーン
- 01ディレクトリ内のコード参照を検索
- 02ファイル種別ごとに整理した結果を確認
- 03ripgrepが使えない環境で検索
MCP 対応
MCPクライアントにコード参照検索機能を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー(Language Server Protocol)
複数の検索戦略に対応した、コード参照検索のための TypeScript ベースの Language Server Protocol 実装です。
特徴
- 🔍 ripgrep を使用した高速なコード参照検索
- 🌐 手軽に検索できる Web インターフェース
- 💻 コマンドラインで利用できるターミナルインターフェース
- 📊 ファイルの種類ごとにグループ化された結果
- 🔄 フォールバック検索機能
- 🔥 開発時のホットリロードに対応
前提条件
開始する前に、以下がインストールされていることを確認してください。
- Node.js(v14 以降)
- npm(Node.js に付属)
- Homebrew(macOS ユーザー向け)
- ripgrep(高速な検索のため推奨)
インストール
1. リポジトリをクローンする
git clone <your-repository-url>
cd <repository-name>/src/mcp-server/v1
2. Homebrew をインストールする(macOS のみ)
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Add Homebrew to PATH (follow the instructions shown after installation)
# Usually these commands:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
# Restart your terminal or run
source ~/.zprofile
3. ripgrep をインストールする
# macOS (using Homebrew)
brew install ripgrep
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install ripgrep
# Fedora
sudo dnf install ripgrep
# Windows (using Chocolatey)
choco install ripgrep
4. 依存関係をインストールする
npm install
使い方
プロジェクトをビルドする
npm run build
サーバーを起動する
本番モード
npm run start
開発モード(ホットリロードあり)
npm run dev
インターフェースにアクセスする
-
Web インターフェース
- ブラウザーを開き、次の URL にアクセスします:
http://localhost:3000 - 検索語とディレクトリを入力します
- ファイルの種類ごとにグループ化された結果を確認します
- ブラウザーを開き、次の URL にアクセスします:
-
ターミナルインターフェース
- ターミナルインターフェースはサーバーとともに自動的に起動します
- プロンプトに従って検索語を入力します
- 結果がターミナルに表示されます
検索戦略
サーバーは次の順序で複数の検索戦略を使用します。
-
ripgrep(最速)
- 正規表現を使用して完全一致と部分一致を検索します
- 一般的なディレクトリ(node_modules、.git など)を除外します
- 行番号とコンテキストを表示します
-
grep(フォールバック)
- ripgrep が利用できない場合に使用します
- 機能は似ていますが、速度は遅くなります
-
Node.js(最終フォールバック)
- JavaScript のみで実装されています
- ripgrep も grep も利用できない場合に使用します
設定
環境要件
- サーバーは必要なソフトウェアを自動的に確認します
- 不足しているソフトウェアがある場合、インストール手順を表示します
- 作業ディレクトリが正しいことを確認します
TypeScript の設定
- ターゲット:ES2020
- モジュール:CommonJS
- 厳密な型チェックを有効化
- デバッグ用のソースマップを生成
トラブルシューティング
よくある問題
-
ディレクトリが正しくない
src/mcp-server/v1ディレクトリにいることを確認してください- 環境チェックに表示されるパスを確認してください
-
Homebrew のインストール
- Homebrew コマンドが失敗する場合は、PATH が設定されていることを確認してください
~/.zprofileで Homebrew の設定を確認してください
-
ripgrep が見つからない
- Homebrew がインストールされ、PATH に設定されていることを確認してください
- 再インストールを試してください:
brew reinstall ripgrep
-
ポートがすでに使用されている
- サーバーは利用可能なポートを自動的に探します
- デフォルトのポートは 3000 です
エラーメッセージ
以下のエラーが表示された場合は、次の方法をお試しください。
-
command not found: brew- Homebrew を再インストールします
- PATH を再設定します
-
command not found: rg- ripgrep をインストールします:
brew install ripgrep - PATH の設定を確認します
- ripgrep をインストールします:
-
EADDRINUSE- ポートが使用中です
- サーバーは自動的に別のポートを試します
開発
利用可能なスクリプト
npm run build:プロジェクトをビルドしますnpm run start:本番モードで起動しますnpm run dev:ホットリロード付きで起動しますnpm run clean:ビルド出力を削除します
新機能の追加
- コア機能を変更するには
server.tsを編集します - Web インターフェースの変更には
index.htmlを更新します - 開発モードで実行して変更をテストします
- ビルドして再起動し、変更を適用します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。