Euthynos
OfficialEin Agent, der eine Datei liest, kann sehen, wovon diese Datei abhängt. Er kann nicht sehen, was von der Datei abhängt. Eingehende Kanten sind von innen unsichtbar, daher kompensieren Agenten, indem sie mehr Dateien lesen, was Kontext verbraucht und dennoch Aufrufer übersieht. Euthynos beantwortet diese Fragen stattdessen aus dem AST, dem Importgraphen und der Git-Historie — keine LLM-Aufrufe, kein Netzwerk im Abfragepfad.
Es liefert Nachweise. Es bescheinigt nicht, dass eine Änderung sicher ist.
Installation
Global installieren. Das -g ist wichtig: Es legt den Befehl euthynos auf
Ihren PATH, damit Ihr MCP-Client den Server starten kann.
npm install -g euthynosÜberprüfen Sie vor dem Verbinden, ob die Installation erfolgreich war:
euthynos --helpDann registrieren Sie es bei Ihrem Agenten:
claude mcp add euthynos -- euthynos mcpOder in einer beliebigen MCP-Client-Konfiguration:
{ "mcpServers": { "euthynos": { "command": "euthynos", "args": ["mcp"] } } }Erfordert Node.js 18+. Funktioniert unter Windows, macOS und Linux.
Fast immer eine lokale Installation anstelle einer globalen. npm install euthynos
ohne -g legt die Binärdatei in ./node_modules/.bin/ ab, was nicht auf Ihrem
PATH liegt, sodass Ihr MCP-Client nichts ausführen kann. Überprüfen Sie mit:
npm ls -g euthynos --depth=0Wenn dies (leer) ausgibt, installieren Sie mit -g neu. Um die versehentliche lokale
Kopie zu entfernen, löschen Sie den Ordner node_modules und die package.json, die
in dem Verzeichnis erstellt wurden, in dem Sie den Befehl ausgeführt haben.
Wenn es global installiert ist und dennoch nicht gefunden wird, ist Ihr npm-globales
Bin-Verzeichnis nicht im PATH — npm config get prefix zeigt, wo es sich befindet. Oder
weisen Sie Ihren Client direkt auf die Binärdatei:
{ "mcpServers": { "euthynos": { "command": "C:\\full\\path\\to\\euthynos.cmd", "args": ["mcp"] } } }Related MCP server: codemap
Die 23 Werkzeuge, nach der Frage, die sie beantworten
Gruppe | Werkzeuge | Was Sie erhalten |
Wer hängt davon ab? |
| Transitive Aufrufer mit Tiefe und Konfidenz, Abhängigkeitskanten auf Modulebene und der kürzeste Aufrufpfad zwischen zwei Funktionen. |
Was erreicht diese Änderung? |
| Einflussbereich vor dem Bearbeiten; nach dem Bearbeiten, welche Symbole verschoben wurden, welche Modulgrenzen der Diff überschritten hat und was der Diff nicht abdeckt. |
Genau so viel lesen |
| Exakte Quelltext-Ausschnitte anstelle ganzer Dateien. |
Orientierung in unbekanntem Repo |
| Modulkarte, strukturelle Metriken und wo die schwachen Grenzen liegen. |
Bevor Sie es erneut schreiben |
| Erkennung von nahezu identischen Duplikaten, bevor Sie eine dritte Kopie hinzufügen, und routenmarkierte Testentdeckung. |
Jede Antwort gibt ihren eigenen Gültigkeitsbereich an. Eine negative Antwort sagt, was nicht untersucht wurde, anstatt zu implizieren, dass nichts existiert.
Gemessen, nicht behauptet
M2 ist ein vorab registrierter Benchmark: Die Aufgaben, Gültigkeitsregeln und Antwortschlüssel wurden vor dem Start einer Sitzung per Commit eingefroren, der Rückruf wurde blind anhand der endgültigen Antworten manuell bewertet, und die ungültigen Sitzungen werden zusammen mit den gültigen veröffentlicht. Gleiches Modell, gleiches Repository, gleiche Eingabeaufforderungen — ein Arm mit Euthynos, einer ohne.
Bei den drei Aufgaben, die vollständig gemessen wurden:
Aufgabe | Arm | frische Tokens | Rückruf vs. eingefrorener Schlüssel | Falsch-Positive |
wer ruft dies auf | Basislinie | 70.878 | 12 / 12 | 1 |
Euthynos | 49.476 | 12 / 12 | 0 | |
ist diese Logik dupliziert | Basislinie | 33.429 | 15 / 15 | 0 |
Euthynos | 29.120 | 15 / 15 | 0 | |
was erreicht diese Änderung | Basislinie | 56.481 | 15 / 15 | 0 |
Euthynos | 39.242 | 15 / 15 | 0 |
Der Rückruf war in beiden Armen identisch und perfekt — jeweils 42 von 42 erforderlichen Elementen — während der Euthynos-Arm 13–31 % weniger frische Tokens verwendete. Der Agent gelangte zur gleichen Antwort, nachdem er weniger gelesen hatte. Eine vorab registrierte Falle, die einen plausiblen falschen Aufrufer induzieren sollte, löste in keinem der Arme aus.
Was dies nicht aussagt. 21 von 46 versuchten Sitzungen waren gültig; eine externe Ratenbegrenzungsmauer nahm 14 davon. Geführte Bearbeitungs- und Orientierungsaufgaben wurden nie gemessen und es wird keine Zahl für sie impliziert. Ein Testrahmen, ein Repository. Dies ist eingesparte Arbeit, nicht verbesserte Antwortqualität — und wir veröffentlichen lieber diesen Satz als eine größere Zahl.
Es werden keine Latenzzahlen veröffentlicht. Zwei intern gültige Messungen stimmten nicht überein, und das kontrollierte Experiment, das dies geklärt hätte, konnte nicht abgeschlossen werden. Daher veröffentlichen wir keine und liefern stattdessen den Testrahmen aus — docs/PROVENANCE.md enthält die Begründung.
Lokal zuerst
Es wird nichts vom Abfragepfad hochgeladen. Der MCP-Server tätigt keine Netzwerkaufrufe und keine LLM-Aufrufe. Er liest Ihren Arbeitsbaum, einschließlich nicht festgeschriebener Bearbeitungen.
Schreibgeschützt. Er ändert niemals Ihren Quelltext.
Pfad-gekapselt. Der Server fixiert seine bedienbaren Wurzeln beim Start; ein Pfad außerhalb wird abgelehnt. Symlinks werden nicht verfolgt.
Ein Verzeichnis auf der Festplatte:
.euthynos/im Repository-Stammverzeichnis, das den inhaltsadressierten Index und ein lokales, nur Metadaten enthaltendes Telemetrieprotokoll enthält. Es wird mit einer eigenen.gitignoreerstellt, und das Löschen kostet nur einen erneuten Scan. Deaktivieren mitEUTHYNOS_NO_INDEX=1undEUTHYNOS_NO_TELEMETRY=1.Eine Ausnahme, opt-in und nur CLI:
euthynos scan --aisendet Kandidaten für doppelte Code-Schnipsel an die Anthropic-API, um Ergebnisse zu bestätigen. Es erfordertANTHROPIC_API_KEY, ist standardmäßig deaktiviert und ist nicht Teil des MCP-Servers.
Skalierung — was wir behaupten und was nicht
Euthynos ist bis zu etwa 10.000 Dateien validiert. Unterhalb von etwa 1.500 ist es komfortabel. Oberhalb von 10.000 ist es nicht validiert und sollte nicht als funktionierend vorausgesetzt werden.
~10.000 Dateien ist die Obergrenze des validierten Bereichs, keine Garantie.
Der Speicher ist die begrenzende Einschränkung am oberen Ende, nicht die Latenz. Das geparste Korpus wird im Speicher gehalten: Ein Repository mit 10.000 Dateien benötigt einen Prozess-RSS von etwa 0,6 GB bis ~1,1 GB während einer Bearbeitungsschleife. Linear extrapoliert — eine Schätzung, keine Messung — ist ein standardmäßiger Node-Heap wahrscheinlich irgendwo zwischen 25.000 und 35.000 Dateien erschöpft. Die 60.000-Dateien-Erkennungsobergrenze im Code ist daher keine erreichbare Grenze.
Präzise Latenzzahlen werden in V1 nicht veröffentlicht. Wir haben zwei intern konsistente Messungen, die bei den größeren Größen voneinander abweichen, und das kontrollierte Experiment, das entschieden hätte, welcher zu vertrauen ist, konnte nicht abgeschlossen werden. Anstatt eine Zahl zu veröffentlichen, hinter der wir nicht stehen können, veröffentlichen wir keine und liefern den Testrahmen aus, damit Sie Ihre eigene Maschine messen können:
node scripts/measurement/gen-scale-repos.mjs
node --expose-gc scripts/measurement/measure-latency.mjs --reps=20Die Begründung findet sich in docs/PROVENANCE.md; der Bereich und was die Leistung beeinflusst, finden Sie in docs/SUPPORTED-SCALE.md.
Andere Grenzen, die Sie vor der Installation kennen sollten:
Die Abfertigung ist synchron. Jeweils ein Werkzeugaufruf, und der erste Kalt-Scan blockiert die Warteschlange für seine gesamte Dauer — Sekunden, die mit der Repository-Größe wachsen. Es gibt kein Timeout pro Aufruf; Ihr MCP-Client muss eines bereitstellen, das diesen ersten Aufruf toleriert.
Index-Lesevorgänge sind nicht kostenlos und nicht skalierungsinvariant.
find_symbol,read_functionundfind_referencesbenötigen reale Zeit und wachsen mit der Repository-Größe. Eine frühere Version dieser Datei behauptete, sie blieben bei jeder Größe unter einer Millisekunde; diese Zahl war ein Argument-Ablehnungs-Fehlerpfad, kein Lesevorgang. Siehe docs/BENCHMARK-INTEGRITY-AUDIT.md.Die Bearbeitungsschleife kostet ein Vielfaches eines warmen Aufrufs, da geänderte Dateien erneut geparst werden müssen. Jede Zahl, die nicht angibt, welche der beiden gemessen wurde, sagt nicht viel aus.
Die Zeit für den Kaltaufbau hängt von der Maschine und der Speicherumgebung ab. Der Aufbau des Index ist I/O-gebunden.
Alle bisherigen Messungen wurden unter TypeScript durchgeführt. Andere Sprachen werden abweichen.
Sprachen
16 werden geparst, über drei Strategien. TypeScript, JavaScript und Vue SFCs über die TypeScript-Compiler-API; Python, Go, Java, Ruby, Rust, PHP, C, C++, C#, Dart, Kotlin und Swift über tree-sitter WASM; COBOL über einen deterministischen Zeilenparser.
Jede Grammatik läuft als reines WASM — keine nativen Bindungen, keine plattformangepassten Vorbauten, keine Compiler-Toolchain. Die Qualität der Call-Graph-Auflösung ist für TypeScript am stärksten.
Was Euthynos nicht behauptet
Es ist ein statischer Analysator. Es sieht Importe, Deklarationen und Aufrufkanten. Es sieht keine Reflektion, dynamischen Dispatch, Laufzeit-Codegenerierung, zeichenkettenbasierte Symbolnamen, dynamische Importe oder Framework-Verdrahtung — und es tut niemals so, als ob.
Diese Phrasen sind in seiner Ausgabe verboten, und das Verbot wird durch Tests durchgesetzt:
ist sicher·sicher zu …·keine anderen Konsumenten·alle Referenzen·unbenutzt·vollständig getestet·keine Auswirkung· jede Behauptung eines mathematischen Sicherheitsbeweises
callers_of gibt nichts zurück – das bedeutet, der statische Graph hat keine Aufrufer gefunden, niemals nichts ruft dies auf. Mehrdeutige modulübergreifende Namen erzeugen keine Kante statt einer Schätzung, sodass Antworten eine untere Schranke darstellen und die Anzahl unaufgelöster Aufrufe mit ausgegeben wird.
Überzeugen Sie sich selbst
Nichts hier verlangt, dass Sie Zahlen blind glauben:
Was | Wo |
Der Token/Recall-Benchmark, vor seiner Ausführung vorregistriert | |
Seine Ergebnisse, unverändert veröffentlicht | |
Wo unsere eigenen veröffentlichten Zahlen falsch waren und wie | |
Messen Sie die Latenz auf Ihrem eigenen Rechner |
|
Was hier überprüfbar ist und was nicht – einschließlich warum Latenzzahlen zurückgestellt sind |
Der letzte Punkt ist kein Zufall der Offenlegung. Zwei unserer Benchmark-Harnesses haben Zeitmessungen von Argumentvalidierungsfehlern fälschlicherweise als Messungen behandelt, und eine veröffentlichte Behauptung war um drei Größenordnungen falsch. Das Audit dokumentiert, was kaputt ging, was ungültig wurde, was neu gemessen wurde und was weiterhin unbelegt ist.
Was nicht veröffentlicht wird: die M2-Antwortschlüssel und das vollständige Sitzungsprotokoll. Jede Aussage dazu ist von diesem Repository aus nicht verifiziert, und wir sagen das lieber, als etwas anderes zu implizieren.
Euthynos for Teams
◈ Euthynos for Teams
Die gleiche Engine, die zwischen einem Pull Request und main steht.
Noch nicht allgemein verfügbar. Es gibt heute keine öffentliche Instanz, bei der man sich anmelden kann. Dieser Abschnitt beschreibt Software, die existiert und läuft – damit Sie jetzt entscheiden können, ob sie Ihre Aufmerksamkeit verdient – nicht ein Produkt, das Sie sofort kaufen können. Zur Early-Access-Liste auf euthynos.dev beitreten →
Verbinden Sie ein Repository über eine GitHub-App. Jeder Push und jeder Pull Request wird serverseitig von der Engine in diesem Repository gescannt, und das Ergebnis landet dort, wo die Entscheidung tatsächlich getroffen wird.
◈ Merge-Policy, als Regeln geschrieben
Fünf Regeltypen, jeweils warn oder block:
Regel | Schwellwert |
| 0–100 |
| 0–100 |
| 0–100 |
| 1–20, ganzzahlig |
| exakt |
Grenzen werden serverseitig durchgesetzt. Das Formular dient der Bequemlichkeit; es ist nicht der Validator.
◈ Der Abhängigkeitsgraph, pro Scan
Jeder Scan erzeugt ein interaktives Graph-Artefakt – Module, Importkanten und die Zyklen, die sich nicht sauber durchtrennen lassen.
Bewertet auf vier Achsen plus Duplikation:
tiefe · nähte · lokalität · hebelwirkung
Jeweils als Band gemeldet – Stark, Stabil, Abdriftend, Gefährdet – weil das Band der Teil ist, der etwas bedeutet.
◈ Ein Check-Run bei jedem PR
Das Urteil wird zusammen mit der Regel aufgezeichnet, die es hervorgebracht hat, sodass „Warum wurde ich blockiert?" eine Antwort hat, die keine Bauchgefühl ist.
Alert-Zustände bleiben über Scans hinweg erhalten: neu · laufend · gelöst · archiviert-bis-schlechter · rückfällig.
◈ Nachweise, die ein Prüfer lesen kann
Exportieren Sie einen Datumsbereich und erhalten Sie den damaligen Regelsatz, jedes Merge-Urteil im Zeitfenster, jede Ausnahme mit ihrem Akteur und schriftlichem Grund sowie die Eigentümerabdeckung pro Modul.
Kein Konto erforderlich, um es zu lesen.
◈ Wissensrisiko aus der Git-Historie. Eigentumsanteil und Bus-Faktor pro Modul – sodass „das schwächste Modul wird auch nur von einer Person verstanden" etwas ist, das Ihnen das Dashboard sagt, und nicht etwas, das Sie herausfinden, wenn diese Person geht.
Auch hier null LLM-Aufrufe. Derselbe Diff erzeugt jedes Mal dasselbe Urteil. Es wird nichts stichprobenartig gezogen, also gibt es nichts zu halluzinieren und nichts, in das Prompt-Injection eingeschleust werden kann. Pushen Sie denselben Branch zweimal, erhalten Sie dieselbe Überprüfung zweimal.
Die CLI in diesem Repository bleibt kostenlos, lokal und Apache-2.0 – das ist eine Zusage, kein Testlauf. Sie ruft die Plattform nicht an, und die Plattform berührt niemals Ihren Rechner.
Möchten Sie es, wenn es geöffnet wird?
→ Zur Early-Access-Liste auf euthynos.dev beitreten
Lokale CLI bleibt für immer kostenlos · keine Kreditkarte · kein Konto nötig, um irgendetwas in diesem Repository zu nutzen
CLI
Der MCP-Server ist die primäre Oberfläche, aber die CLI steht eigenständig:
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 servereuthynos --help gibt den vollständigen Parametersatz und den Build-Stempel aus.
Dokumentation
docs/ARCHITECTURE.md · docs/SUPPORTED-SCALE.md · docs/SECURITY.md · docs/CONTRIBUTING.md · docs/TRADEMARK.md · docs/PROVENANCE.md · CHANGELOG.md
Sicherheit
Melden Sie Schwachstellen vertraulich über GitHub Security Advisories, nicht über ein öffentliches Issue. Umfang und Erwartungen: docs/SECURITY.md.
Lizenz
Apache License 2.0 – siehe LICENSE und NOTICE.
Copyright © 2026 Tonil Kumar.
Die Lizenz deckt den Code ab. Sie deckt nicht den Namen ab: „Euthynos" wird als nicht eingetragenes Markenzeichen von Tonil Kumar beansprucht – es wurde kein Eintrag beantragt oder gewährt. Siehe docs/TRADEMARK.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceProvides local codebase intelligence as an MCP server, enabling AI agents to query dependencies, assess change impact, and produce tamper-evident change evidence packets.508Apache 2.0
- Alicense-qualityAmaintenanceMCP server for local-first code intelligence, providing structural code graph, semantic search, and impact analysis to AI agents.1MIT
- Alicense-qualityAmaintenanceLocal-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.MIT
- Alicense-qualityAmaintenanceLocal 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.59MIT
Related MCP Connectors
Hosted MCP server for structured code review passes on human- and AI-written code. Free tier.
An MCP server that gives your AI access to the source code and docs of all public github repos
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/euthynos-org/euthynos'
If you have feedback or need assistance with the MCP directory API, please join our Discord server