mcpField
J
jarvis

jarvis

ローカル
github.com/jarvis-intelligence開発ツール41 週間前に更新

jarvis について

jarvisは、コーディングエージェント向けのローカル優先コードナビゲーションMCPサーバーです。リポジトリを事前にインデックス化し、シンボル検索とテキスト検索を提供します。コードとインデックスはローカルに保持されます。

主な機能

  1. 01シンボル定義と参照の検索
  2. 02呼び出し・型階層の確認
  3. 03テキスト・正規表現検索
  4. 04リポジトリ横断の依存範囲確認
  5. 05インデックス状態と作成
  6. 06ローカルダッシュボード

活用シーン

  1. 01リポジトリ内でシンボルの使用箇所を追跡
  2. 02関数の呼び出し元と呼び出し先を調査
  3. 03不要な結果を抑えてコードを検索
  4. 04インデックス済みリポジトリ間の依存を確認

MCP 対応

stdio経由で、コードナビゲーション、検索、インデックス管理、状態確認など10種類のツールをMCPクライアントに公開します。独立したHomebrew版ではsemanticSearchも登録されていますが、利用できません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"jarvis-intelligence-jarvis": {
"command": "uvx",
"args": [
"jarvis-mcp"
]
}
}
}
起動コマンドuvx jarvis-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypijarvis-mcp0.8.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

jarvis

CI Platforms License: MIT MCP

コーディングエージェントが grep にコンテキストウィンドウを費やすべきではありません。

エージェントが 「AuthService はどこで使われていますか?」 と尋ねると、grep はコメント、 Markdown、テスト用データ、名前の似たシンボルをノイズまみれの結果として返します。エージェントはノイズから必要な情報を見分けるためにファイルを読み直し、コンテキストを消費します。それでも呼び出し箇所を見落とすことがあります。

jarvis はローカルのコードインテリジェンスレイヤーを事前に構築するため、エージェントは正確な出現箇所を調べる findReferences、定義範囲を調べる goToDefinition、呼び出し経路を調べる callHierarchy、精密な字句検索を行う searchCode を呼び出せます。Claude Code、Cursor、その他の MCP クライアント向けの 10 個の MCP ツールを提供します。 コードとインデックスがマシンの外に出ることはありません。

jarvis を使わない場合Grep → コメント、テスト、インポートが実際の結果と混在 → 絞り込むためにファイルを開く → 呼び出し箇所を推測 → 推論ではなく検索にコンテキストを消費
jarvis を使う場合findReferences("AuthService") → ファイルと範囲が特定された正確な出現箇所 → グラフを callHierarchy で確認 → searchCode("token refresh") → すべての一致箇所を開かずに回答

grep はノイズの多い結果を返す一方、jarvis の findReferences は正確な file:line:col の出現箇所を 10 件返します

クイックスタート · MCP ツール · ダッシュボード · 制限事項 · 詳細 · ドキュメント

クイックスタート

1. スタンドアロンバイナリをインストールします:

brew install jarvis-intelligence/jarvis/jarvis

Linux ユーザーは、まず Homebrew/Linuxbrew をインストールする必要があります。このフォーミュラは macOS arm64/x86_64 と Linux arm64/x86_64 に対応し、jarvis と jarvis-server の両方をインストールします。また、Python 3.12、ダッシュボードのアセット、tree-sitter ライブラリ、watch、scip、zoekt-git-index、zoekt-webserver が含まれています。Homebrew が universal-ctags を提供します。Python、uv、pip、PyPI によるインストールは不要です。

brew upgrade jarvis でアップグレードできます。破損したインストールは brew reinstall jarvis で復旧できます。

2. リポジトリをインデックス化します(スラッグのデフォルトはディレクトリ名です):

jarvis index /path/to/your/repo

3. MCP サーバーを登録します:

claude mcp add jarvis --scope user -- jarvis-server

エージェントに 「AuthService へのすべての参照を探して」 と尋ねると、grep の代わりに findReferences を呼び出します。

その他の MCP クライアント(Cursor、Claude Desktop、stdio クライアント全般)
{
  "mcpServers": {
    "jarvis": {
      "command": "jarvis-server"
    }
  }
}

クライアントが PATH 上の jarvis-server を見つけられない場合(GUI アプリはシェルの環境を引き継がないことがよくあります)、which jarvis-server で取得した絶対パスを使用してください。

Claude Code プラグイン(MCP を登録し、エージェントスキルを同梱)

まず Homebrew バイナリをインストールしてください。このプラグインは jarvis スキルを追加し、インストール済みの jarvis-server を登録できます。

/plugin marketplace add jarvis-intelligence/jarvis-index
/plugin install jarvis@jarvis
オプションの言語インデクサー

スタンドアロンパッケージには SCIP コンバーターと 2 つの Zoekt バイナリが含まれています。Homebrew フォーミュラには setup.sh が含まれていません。jarvis のソースチェックアウトから、リポジトリに必要な言語別インデクサーをインストールしてください:

言語インストーラーツールチェーン
TypeScript/TSXsh setup.sh --only scip-typescriptNode.js/npm
Pythonsh setup.sh --only scip-pythonNode.js/npm
Java/Kotlinsh setup.sh --only scip-javaJDK。Kotlin リポジトリでは Kotlin 2.2.0 を正確に指定する必要があります
Swiftsh setup.sh --only scip-swiftmacOS arm64 上の Xcode

macOS で Maven を使ってビルドする Java リポジトリでは、brew install bash で最新の Bash もインストールし、同じソースチェックアウトから sh setup.sh --only bash-shim を実行してください。インデクサーを追加した後、再度インデックス化してください。対応するインデクサーがない場合でも、カバレッジがある範囲では Tree-sitter を使って documentSymbols と goToDefinition が動作します。 findReferences、callHierarchy、typeHierarchy は復旧方法を案内します。

含まれない機能

semanticSearch は MCP との互換性のために登録されていますが、スタンドアロン配布には含まれていません。ソースビルドの手順を示す Homebrew 固有の利用不可エラーを返します。字句検索とシンボル検索は引き続き利用できます。

セマンティック検索をソースからビルドする

スタンドアロンの Homebrew パッケージには、セマンティック検索の依存関係が含まれていません。ソースチェックアウトで、次のコマンドを実行してインストールしてください:

uv run jarvis install-semantic

次に、明示的にインデックス化します:

uv run jarvis index /path/to/repo --semantic

install-semantic は埋め込みモデル(BAAI/bge-m3、約 4.3 GB、初回のみ)も共有 Hugging Face キャッシュ(~/.cache/huggingface/)に事前ダウンロードします。インデックス化するリポジトリはすべて、このモデルを再利用します。ダウンロードが中断された場合、次回の jarvis index で自動的に再試行されます。

MCP ツール

ツール説明
goToDefinitionシンボルの定義ファイルと範囲を特定します
findReferencesインデックス化されたリポジトリ全体で、シンボルが出現するすべての箇所を検索します
callHierarchyシンボルへの呼び出し元/呼び出し先を表示します
typeHierarchyスーパータイプ/サブタイプを表示します
documentSymbols1 つのファイルで定義されているすべてのシンボルのアウトラインを表示します
searchCodeZoekt による字句/正規表現検索を行います。必要に応じて 1 つのリポジトリに絞り込めます
semanticSearchHomebrew 配布版でセマンティック検索を利用できないことを示すエラーを返します
blastRadius最大 2 ホップ先まで、他のどのインデックス化済みリポジトリがパッケージに依存しているかを示します
getIndexStatus公開済みコミット、最新度、作業ツリーとの差分を示します
indexRepopath の git リポジトリのインデックスを構築します

ダッシュボード

jarvis dashboard          # serves http://127.0.0.1:6080 and opens a browser

CLI と MCP サーバーが読み取るものと同じ ~/.jarvis データを表示する、localhost 上の Web コンソールです。

リポジトリビュー   ツールプレイグラウンド

要件と制限事項

  • macOS arm64/x86_64 と Linux arm64/x86_64 のみ対応しています。 Windows はサポートされていません。
  • Homebrew ディストリビューションでは、セマンティック検索を利用できません。
  • リポジトリごとに1つの言語 — git で追跡されているファイルの拡張子の最多数から検出します。--language で上書きできます。
  • jarvis はコードを編集しません。 jarvis は検索を担い、リネームやリファクタリングには Serena を併用できます。
  • インデックス作成は明示的に行います — クエリを実行する前に jarvis index(または jarvis watch)を実行してください。

詳細

仕組み

インデックス作成 CLI が事前計算済みインデックスを ~/.jarvis に書き込み、stdio ランタイムがそれを読み込みます。この2つは、ほかの契約を共有しません。

jarvis のアーキテクチャ

  • 公開はアトミックに行われます — 再インデックスでは新しいスナップショットを書き込んだ後、os.replace で current ポインターを切り替えます。古いスナップショットを読み取っているクエリは引き続き動作し、ダウンタイムは発生しません。
  • ランタイムの処理では書き込みを行いません — すべてのクエリは公開済みのスナップショットを読み取り専用で開きます(mode=ro&immutable=1)。
  • パッケージグラフは蓄積せずに再構築します — 再インデックスのたびに、そのリポジトリの出力エッジをすべて消去してから再計算します。

詳しくは、docs/system-architecture.md を参照してください。

インデックス作成 CLI リファレンス
jarvis index /path/to/your/repo            # slug defaults to the directory name
jarvis index /path/to/your/repo --slug foo # or pick one explicitly
jarvis index /path/to/your/repo --scheme MyScheme # Swift repo with an ambiguous Xcode scheme
jarvis index /path/to/your/repo --language python # force the language instead of detecting it
jarvis index /path/to/your/repo --no-scip   # skip optional SCIP enrichment; syntax baseline + Zoekt still publish
jarvis index /path/to/your/repo --scip      # re-enable SCIP enrichment (both flags persist per repo)
jarvis list
jarvis status foo
jarvis reindex foo
jarvis forget foo
jarvis watch /path/to/your/repo [--debounce 5.0]  # debounced auto-reindex on file changes (foreground)
上流プロジェクトの既知の制限事項
  • scip-java は Android/Gradle リポジトリのインデックスを作成できません — Gradle プラグインは、AGP に置き換えられる標準ソースセットを前提としているためです(scip-java#177)。自動的に検出され、検索のみのモードに切り替わります。
  • Kotlin のインデックス作成には、Kotlin のバージョンを完全に一致させる必要があります — scip-kotlinc は固定された特定のリリース(現在は 2.2.0)に対してコンパイルされています。自動的に検出されます。
  • Maven でビルドされた Java リポジトリを macOS で使うには、bash ≥ 4.4 が必要です — brew install bash で解決できます。
  • Swift のインデックス作成には scip >= v0.9.0 が必要です — 古いコンバーターは出現箇所の範囲を警告なしに破棄します。jarvis index は、壊れたインデックスを公開しないよう、古い scip の使用を拒否します。
設定
変数用途
JARVIS_DATA_DIRすべてのインデックスとレジストリで、デフォルトの ~/.jarvis を上書きします

ソース開発用のセマンティックパスには、モデルプレフィックスを追加で上書きする設定があります。 これらはスタンドアロンディストリビューションには影響しません。

ドキュメント

ライセンス

MIT

コメント

MCP は初めてですか?

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

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