Skip to main content
Glama
euthynos-org

Euthynos

Official
by euthynos-org

ファイルを読んでいるエージェントは、そのファイルが何に依存しているかはわかります。しかし、そのファイルに何が依存しているかはわかりません。内部からは内向きのエッジが見えないため、エージェントはより多くのファイルを読むことで補おうとしますが、それによってコンテキストが消費され、呼び出し元を見落とすこともあります。Euthynos は代わりに AST、インポートグラフ、Git 履歴からこれらの質問に答えます。LLM 呼び出しはゼロ、クエリ経路でのネットワーク通信もありません。

証拠を提供します。変更が安全であることを保証するものではありません。

インストール

グローバルにインストールします。 -g が重要です。これによって euthynos コマンドが PATH に配置され、MCP クライアントがサーバーを起動できるようになります。

npm install -g euthynos

配線前にインストールが完了したことを確認します。

euthynos --help

次に、エージェントに登録します。

claude mcp add euthynos -- euthynos mcp

または、任意の MCP クライアント設定で。

{ "mcpServers": { "euthynos": { "command": "euthynos", "args": ["mcp"] } } }

Node.js 18 以上が必要です。Windows、macOS、Linux で動作します。

ほとんどの場合、ローカルインストールであり、グローバルインストールではありません。-g なしで npm install euthynos を実行すると、バイナリは ./node_modules/.bin/ に配置されますが、これは PATH に含まれていないため、MCP クライアントが実行するものがありません。以下で確認してください。

npm ls -g euthynos --depth=0

もし (empty) と表示された場合は、-g を付けて再インストールしてください。誤ってローカルコピーを作成した場合は、コマンドを実行したディレクトリ内に作成された node_modules フォルダと package.json を削除してください。

グローバルにインストールされているにもかかわらず見つからない場合は、npm のグローバルバイナリデイレクトリが PATH に含まれていません。npm config get prefix でその場所を確認できます。または、クライアントからバイナリを直接指定します。

{ "mcpServers": { "euthynos": { "command": "C:\\full\\path\\to\\euthynos.cmd", "args": ["mcp"] } } }

Related MCP server: Knossos MCP

23 のツール(答える質問ごと)

グループ

ツール

得られるもの

これに依存しているのは?

callers_of callees_of dependents_of dependencies_of find_references path_between

推移的な呼び出し元(深さと確信度)、モジュールレベルの依存関係エッジ、2つの関数間の短い呼び出しパス。

この変更はどこに届く?

impact_of change_impact check_my_changes diff_context boundary_check

編集中の爆風半径; 編集後、移動したシンボル、差分が越えたモジュール境界、差分がカバーしなかったもの。

これだけを読む

read_function read_span file_outline find_symbol context_bundle

ファイル全体ではなく正確なソース範囲。context_bundle は、トークン予算内でソース、呼び出し元、テスト、爆風半径を構成します。

未知のリポジトリで方向を定める

repo_map query_repository architecture_health module_metrics

モジュールマッパ、構造的メトッリクス、脆弱な境界の場所。

書き直す前に

similar_logic_exists compare_implementations tests_for

3つ目のコピーを追加する前に近い重複を検出、ルートラベル付きのテスト発見。

すべての回答は、自身のスコープを明示します。否定的な回答は、何も存在しないことを示唆するのではなく、調査しなかったものを示します。

測定された、主張ではない

M2 は事前登録されたベンチマークです:タスク、妥当性ルール、回答キーは、セッション実行前にコミットによって固定され、想起率は最終回答のみから盲検で手作業で評価され、無効なセッションは有効なものと共に公開されています。同一モデル、同一リポジトリ、同一プンロプト—一方のアムは Euthynos を搭載、もう一方は未搭載。

完全な測定に達した 3 つのタスク:

タスク

条件群

新規トークン

想起率 vs frozen key

偽陽性

これを呼び出すのは誰か

ベースライン

70,878

12 / 12

1

Euthynos

49,476 −30%

12 / 12

0

このロジックは重複しているか

ベースライン

33,429

15 / 15

0

Euthynos

29,120 −13%

15 / 15

0

この変更はどこに届くか

ベースライン

56,481

15 / 15

0

Euthynos

39,242 −31%

15 / 15

0

**両条件群で想起率は同一で完璧—各 42 の要求項目を達成—一方、Euthynos 条件群は 13–31% 少ない新規トークンを消費しました。**エージェントは、より少ない読み込みで同じ答に達しました。もっともらしい誤った呼び出し元を誘導するよう設計された事前登録の罠は、どちらの条件群でも作動しませんでした。

これが言っていないこと。 試みた 46 セッションのうち 21 が有効でした。外部のレート制限により 14 セッションが失われました。ガイド付き編集および方向付けタスクは測定されておらず、それらに対する数値は暗示していません。1 つのハーネス、1 つのリポジトリ。これは節約された作業であり、回答品質の向上ではありません—そして私たちは、その一文をより大きな数値よりも公開したいと考えています。

レイテンシ数値は公開されていません。 2 つの内部で有効な測定値が一致せず、それを解決するための制御実験を完了できなかったため、どちらも公開せず、代わりにハーネスを提供します— docs/PROVENANCE.md にその理由があります。

ローカルファースト

  • クエリ経路からは何もアップロードされません。 MCP サーバーはネットワークコールも LLM コールも行いません。作業ツリー(コミットされていない編集を含む)を読み取ります。

  • 読み取り専用。 ソースを変更することはありません。

  • パスでサンドボックス化。 サーバーは起動時に提供可能なルートを固定し、それら以外のパスは拒否されます。シンボリックリンクは辿られません。

  • ディスク上の 1 つのディレクトリ: リポジトリルートの .euthynos/。コンテンツアドレスインデックスとローカルメタデータのみのテレメトログを保持します。自身の .gitignore と共に作成され、削除しても再スキャンがかかるだけです。 EUTHYNOS_NO_INDEX=1 と EUTHYNOS_NO_TELEMETRY=1 でオプトアウトできます。

  • 1 つの例外、オプトインかつ CLI のみ: euthynos scan --ai は、候補となる重複スニペットを Anthropic API に送信して発見を確認します。ANTHROPIC_API_KEY が必要で、デフォルトではオフです。MCP サーバーの一部ではありません。

スケール — 主張することとしないこと

Euthynos はおおむね 10,000 ファイルまで検証されています。約 1,500 未満では快適に動作します。10,000 を超えると検証されておらず、動作すると想定すべきではありません。

約 10,000 ファイルは検証範囲の上限であり、保証ではありません。

上限における制約はレイテンシではなくメモリです。 パースされたコーパスはメモリに保持されます:10,000 ファイルのリポジトリでは、編集ループ中にプロセスの RSS が約 0.6 GB から約 1.1 GB に増加します。線形に外挿すると—測定ではなく推定—デフォルトの Node ヒープはおそらく約 25,000 から 35,000 ファイルのどこかで枯渇します。したがって、コード内の 60,000 ファイル発見上限は到達可能な制限ではありません。

V1 では正確なレイテンシ数値は公開されていません。 私たちは、より大きなサイズで矛盾する 2 つの内部で一貫した測定値を保持しており、どちらを信頼すべきかを解決する制御実験を完了できませんでした。確信を持って裏付けられない数値を公開する代わりに、何も公開せず、ハーネスを提供しますので、自分のマシンで測定できます:

node scripts/measurement/gen-scale-repos.mjs
node --expose-gc scripts/measurement/measure-latency.mjs --reps=20

理由は docs/PROVENANCE.md にあります。範囲とパフォーマンスに影響を与えるものは docs/SUPPORTED-SCALE.md にあります。

インストール前に知っておくべきその他の制限事項:

  • ディスパッチは同期です。 一度に 1 つのツール呼び出し。コールドファーストスキャンはその全期間、キューをブロックします—秒単位で、リポジトリサイズとともに増加します。呼び出しごとのタイムアウトはありません。MCP クライアントは、その最初の呼び出しを許容するタイムアウトを供給する必要があります。

  • インデックス読み取りは無料ではなく、スケール不変でもありません。 find_symbol、read_function、find_references は実際の時間を消費し、リポジトリサイズとともに増加します。このファイルの以前のバージョンでは、すべてのスケールで 1 ミリ秒未満であると主張していましたが、その数値は引数拒否エラーパスであり、読み取りではありません。詳細は docs/BENCHMARK-INTEGRITY-AUDIT.md を参照してください。

  • 編集ループはウォームコールの数倍のコストがかかります。 変更されたファイルを再パースする必要があるためです。どちらを測定したかを明記していない数値は、あまり意味がありません。

  • コールドビルドのタイミングは、マシンとストレージ環境に依存します。 インデックスの構築は I/O バウンドです。

  • これまでのすべての測定は TypeScript で行われています。他の言語では異なる場合があります。

言語

16 言語を 3 つの戦略でパース。 TypeScript、JavaScript、Vue SFC は TypeScript コンパイラ API 経由。Python、Go、Java、Ruby、Rust、PHP、C、C++、C#、Dart、Kotlin、Swift は tree-sitter WASM 経由。COBOL は決定論的なラインパーサ経由。

すべての文法は純粋な WASM として実行されます—ネイティブバインディング、プラットフォーム依存のプリビルド、コンパイラツルチェインなし。コールグラフの解像度は TypeScript で最強です。

Euthynos が主張しないこと

これは静的解析ツルです。インポト、宣言、呼び出しエッジを認識します。リフレクション、動的ディスパッチ、実行時コード生成、文字列構築のシンボル名、動的インポート、フレームワークの配線は認識しません—そして、そのように装うことは決してありません。

これらのフレーズは出力で禁止され、テストによって禁止が実施されています:

is safe · safe to … · no other consumers · all references · unused · fully tested · no impact · 安全性の数学的証明の主張

callers_of が何も返さないのは、静的グラフが呼び出し元を見つけられなかったことを意味し、何もこれを呼び出していないという意味ではありません。曖昧なモジュール間の名前は推測ではなくエッジなしを生成するため、回答は下限となり、未解決の呼び出しの数が併せて表示されます。

主張を自分で検証する

ここでは、何も信頼して受け入れる必要はありません。

内容

場所

実行前に事前登録されたトークン/リコールベンチマーク

research/M2-PREREG.md

未修正で公開されたその結果

research/M2-RESULTS.md

当社が公開した数値が誤っていた箇所とその理由

docs/BENCHMARK-INTEGRITY-AUDIT.md

自分のマシンでレイテンシを測定する

scripts/measurement/measure-latency.mjs

ここで検証可能なことと不可能なこと — レイテンシ数値が延期された理由を含む

docs/PROVENANCE.md

最後の項目は開示の偶然ではありません。当社のベンチマークハーネスのうち2つは、引数検証エラーを測定値であるかのように計時しており、公開された主張の1つは3桁も誤っていました。監査では、何が壊れたか、何が無効になったか、何が再測定されたか、そして何が未サポートのままかを文書化しています。

公開されていないもの: M2の解答キーと完全なセッション台帳。これらに関するいかなる記述もこのリポジトリからは未検証であり、そうでないと暗示するよりも、そのように明言します。

Euthynos for Teams

◈ Euthynos for Teams

同じエンジンが、プルリクエストと main の間に立ちます。

Early access Status LLM calls

まだ一般公開されていません。 現在ログインできる公開インスタンスはありません。このセクションでは、存在し動作するソフトウェアについて説明しています — 今すぐ注目する価値があるかどうかを判断できるようにするためであり、今すぐ購入できる製品ではありません。早期アクセスリストに参加する →

GitHub App を通じてリポジトリを接続します。すべてのプッシュとプルリクエストは、このリポジトリのエンジンによってサーバーサイドでスキャンされ、結果は実際に決定が行われる場所に届きます。

◈ マージポリシー、ルールとして記述

5つのルールタイプ。それぞれ warn または block:

ルール

しきい値

health-delta

0–100

contamination-delta

0–100

metric-floor

0–100

min-owners

1–20, integer

no-new-duplication

exact

境界はサーバーサイドで強制されます。フォームは便宜上のものであり、バリデータではありません。

◈ スキャンごとの依存関係グラフ

すべてのスキャンは、インタラクティブなグラフアーティファクト(モジュール、インポートエッジ、きれいに切断できないサイクル)を生成します。

4つの軸と重複でスコアリング:

depth · seams · locality · leverage

各軸はバンド(Strong, Stable, Drifting, At Risk)で報告されます。バンドこそが意味のある部分だからです。

◈ すべてのPRに対するチェック実行

判定はそれを生成したルールに対して記録されるため、「なぜブロックされたのか」という問いに、雰囲気ではない答えがあります。

アラート状態はスキャン間で引き継がれます: new · ongoing · resolved · archived-until-worse · regressed。

◈ 監査人が読める証拠

日付範囲をエクスポートすると、当時のままのルールセット、その期間内のすべてのマージ判定、各オーバーライドとその実行者および書面による理由、モジュールごとの所有権カバレッジを取得できます。

読むのにアカウントは不要です。

◈ git履歴からの知識リスク。 モジュールごとの所有権割合とバスファクター — つまり、「最も弱いモジュールがたった一人だけに理解されている」 ということを、その人が去ったときに知るのではなく、ダッシュボードが教えてくれるのです。


ここでもLLM呼び出しはゼロです。 同じ差分は毎回同じ判定を生成します。サンプリングは行われないため、幻覚もプロンプトインジェクションもありません。同じブランチを2回プッシュすれば、同じレビューが2回得られます。

このリポジトリのCLIは無料、ローカル、Apache-2.0のままです — これは試用ではなく、コミットメントです。プラットフォームに電話することはなく、プラットフォームがあなたのマシンに触れることもありません。

公開されたら欲しいですか?

→ Join the early-access list at euthynos.dev

ローカルCLIは永久に無料 · クレジットカード不要 · このリポジトリのすべてを使用するのにアカウント不要

CLI

MCPサーバーが主要なインターフェースですが、CLIは単独で動作します:

euthynos scan [path]        architecture scan — six metrics, module table
euthynos graph [path]       build the call graph; --impact/--callers/--path
euthynos dashboard [path]   self-contained interactive HTML, zero runtime deps
euthynos index [path]       inspect or rebuild the local index
euthynos mcp                start the MCP stdio server

euthynos --help はすべてのフラグセットとビルドスタンプを表示します。

ドキュメント

docs/ARCHITECTURE.md · docs/SUPPORTED-SCALE.md · docs/SECURITY.md · docs/CONTRIBUTING.md · docs/TRADEMARK.md · docs/PROVENANCE.md · CHANGELOG.md

セキュリティ

脆弱性は公開Issueではなく、GitHub Security Advisoriesを通じて非公開で報告してください。範囲と期待事項: docs/SECURITY.md。

ライセンス

Apache License 2.0 — LICENSE および NOTICE を参照。

Copyright © 2026 Tonil Kumar.

ライセンスはコードを対象としています。名称は対象外です。「Euthynos」はTonil Kumarの未登録商標として主張されています — 登録は申請も許可もされていません。docs/TRADEMARK.md を参照。


Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for local-first code intelligence, providing structural code graph, semantic search, and impact analysis to AI agents.
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local-first MCP server that scans a repository once and answers architecture questions from an evidence-backed graph, enabling dependency analysis, impact analysis, and codebase exploration without re-reading the source tree.
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Local repository intelligence MCP server that builds a reusable graph of code structure for AI coding agents, providing 34 network-free tools for understanding, searching, and analyzing repositories without data leaving the machine.
    83 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that builds a local code intelligence layer, letting AI agents explore call graphs, blast radius, and source slices via a single tool without external APIs.
    MIT