Skip to main content
Glama
euthynos-org

Euthynos

Official
by euthynos-org

Un agente que lee un archivo puede ver de qué depende ese archivo. No puede ver qué depende del archivo. Las aristas entrantes son invisibles desde dentro, por lo que los agentes compensan leyendo más archivos, lo que consume contexto y aún así se pierden llamantes. Euthynos responde a esas preguntas desde el AST, el grafo de importaciones y el historial de git — cero llamadas LLM, sin red en la ruta de consulta.

Proporciona evidencia. No certifica que un cambio sea seguro.

Instalación

Instalar globalmente. El -g es importante: es lo que coloca el comando euthynos en tu PATH, que es como tu cliente MCP inicia el servidor.

npm install -g euthynos

Verifica que se instaló antes de conectar nada:

euthynos --help

Luego regístralo con tu agente:

claude mcp add euthynos -- euthynos mcp

O en cualquier configuración de cliente MCP:

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

Requiere Node.js 18+. Funciona en Windows, macOS y Linux.

Casi siempre es una instalación local en lugar de global. npm install euthynos sin -g coloca el binario en ./node_modules/.bin/, que no está en tu PATH, por lo que tu cliente MCP no tiene nada que ejecutar. Confírmalo con:

npm ls -g euthynos --depth=0

Si eso imprime (vacío), reinstala con -g. Para limpiar la copia local accidental, elimina la carpeta node_modules y package.json que creó en el directorio desde el que ejecutaste el comando.

Si está instalado globalmente y aún no se encuentra, tu directorio global de binarios de npm no está en PATH — npm config get prefix muestra dónde está. O apunta tu cliente directamente al binario:

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

Related MCP server: codemap

Las 23 herramientas, por la pregunta que responden

grupo

herramientas

lo que obtienes

¿Quién depende de esto?

callers_of callees_of dependents_of dependencies_of find_references path_between

Llamantes transitivos con profundidad y confianza, aristas de dependencia a nivel de módulo, y la ruta de llamada más corta entre dos funciones.

¿Qué alcanza este cambio?

impact_of change_impact check_my_changes diff_context boundary_check

Radio de explosión antes de editar; después de editar, qué símbolos se movieron, qué límites de módulo cruzó el diff, y lo que el diff no cubrió.

Lee exactamente esto

read_function read_span file_outline find_symbol context_bundle

Fragmentos de código exactos en lugar de archivos completos. context_bundle compone código fuente, llamantes, pruebas y radio de explosión bajo un presupuesto de tokens.

Orientarse en un repositorio desconocido

repo_map query_repository architecture_health module_metrics

Mapa de módulos, métricas estructurales y dónde están los límites débiles.

Antes de escribirlo de nuevo

similar_logic_exists compare_implementations tests_for

Detección de casi duplicados antes de añadir una tercera copia, y descubrimiento de pruebas etiquetadas por ruta.

Cada respuesta declara su propio alcance. Una respuesta negativa dice qué no se examinó en lugar de implicar que no existe nada.

Medido, no afirmado

M2 es un benchmark preregistrado: las tareas, las reglas de validez y las claves de respuesta fueron congeladas por commit antes de que se ejecutara cualquier sesión, el recall fue calificado manualmente a ciegas solo a partir de las respuestas finales, y las sesiones inválidas se publican junto con las válidas. Mismo modelo, mismo repositorio, mismos prompts — un brazo con Euthynos montado, otro sin.

En las tres tareas que alcanzaron la medición completa:

tarea

brazo

tokens nuevos

recall vs clave congelada

falsos positivos

quién llama a esto

línea base

70,878

12 / 12

1

Euthynos

49,476  −30%

12 / 12

0

esta lógica está duplicada

línea base

33,429

15 / 15

0

Euthynos

29,120  −13%

15 / 15

0

qué alcanza este cambio

línea base

56,481

15 / 15

0

Euthynos

39,242  −31%

15 / 15

0

El recall fue idéntico y perfecto en ambos brazos — 42 de 42 elementos requeridos cada uno — mientras que el brazo de Euthynos usó entre un 13 y un 31% menos de tokens nuevos. El agente llegó a la misma respuesta habiendo leído menos. Una trampa preregistrada diseñada para inducir un llamante incorrecto plausible no se activó en ninguno de los brazos.

Lo que esto no dice. 21 de 46 sesiones intentadas fueron válidas; un muro de límite de tasa externo se llevó 14 de ellas. Las tareas de edición guiada y orientación nunca se midieron y no se implica ningún número para ellas. Un arnés, un repositorio. Esto es trabajo ahorrado, no calidad de respuesta mejorada — y preferimos publicar esa frase que un número más grande.

No se publican cifras de latencia. Dos mediciones internamente válidas discreparon y el experimento controlado que las habría resuelto no pudo completarse, por lo que no publicamos ninguna y en su lugar enviamos el arnés — docs/PROVENANCE.md tiene el razonamiento.

Local primero

  • No se sube nada desde la ruta de consulta. El servidor MCP no realiza ninguna llamada de red ni ninguna llamada LLM. Lee tu árbol de trabajo, incluyendo las ediciones no confirmadas.

  • Solo lectura. Nunca modifica tu código fuente.

  • Ruta en caja de arena. El servidor fija sus raíces servibles al inicio; se rechaza una ruta fuera de ellas. No se siguen enlaces simbólicos.

  • Un directorio en disco: .euthynos/ en la raíz del repositorio, que contiene el índice direccionado por contenido y un registro de telemetría local solo de metadatos. Se crea con su propio .gitignore, y eliminarlo solo cuesta un nuevo escaneo. Opta por no participar con EUTHYNOS_NO_INDEX=1 y EUTHYNOS_NO_TELEMETRY=1.

  • Una excepción, opt-in y solo CLI: euthynos scan --ai envía fragmentos candidatos duplicados a la API de Anthropic para confirmar hallazgos. Requiere ANTHROPIC_API_KEY, está desactivado por defecto y no es parte del servidor MCP.

Escala — lo que afirmaremos y lo que no

Euthynos está validado hasta aproximadamente 10,000 archivos. Por debajo de aproximadamente 1,500 es cómodo. Por encima de 10,000 no está validado y no se debe asumir que funcione.

~10,000 archivos es el límite superior del sobre validado, no una garantía.

La memoria es la restricción vinculante en el extremo superior, no la latencia. El corpus analizado se mantiene en memoria: un repositorio de 10,000 archivos toma el RSS del proceso desde aproximadamente 0.6 GB hasta ~1.1 GB durante un bucle de edición. Extrapolando linealmente — una estimación, no una medición — es probable que un heap de Node por defecto se agote en algún lugar alrededor de 25,000–35,000 archivos. Por lo tanto, el límite de descubrimiento de 60,000 archivos en el código no es un límite alcanzable.

No se publican cifras precisas de latencia en V1. Tenemos dos mediciones internamente consistentes que discrepan en los tamaños más grandes, y el experimento controlado que habría resuelto cuál confiar no pudo completarse. En lugar de publicar un número que no podemos respaldar, no publicamos ninguno y enviamos el arnés para que puedas medir tu propia máquina:

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

El razonamiento está en docs/PROVENANCE.md; el sobre y lo que afecta el rendimiento están en docs/SUPPORTED-SCALE.md.

Otros límites que vale la pena conocer antes de instalar:

  • El envío es síncrono. Una llamada de herramienta a la vez, y el primer escaneo en frío bloquea la cola durante toda su duración — segundos, que crecen con el tamaño del repositorio. No hay tiempo de espera por llamada; tu cliente MCP debe proporcionar uno que tolere esa primera llamada.

  • Las lecturas del índice no son gratuitas ni invariantes en escala. find_symbol, read_function y find_references cuestan tiempo real y crecen con el tamaño del repositorio. Una versión anterior de este archivo afirmaba que se mantenían por debajo de un milisegundo en todas las escalas; esa cifra era una ruta de error de rechazo de argumento, no una lectura. Ver docs/BENCHMARK-INTEGRITY-AUDIT.md.

  • El bucle de edición cuesta varias veces una llamada en caliente, porque los archivos modificados deben ser reanalizados. Cualquier cifra que no diga cuál de los dos midió no te está diciendo mucho.

  • Los tiempos de construcción en frío dependen de la máquina y del entorno de almacenamiento. Construir el índice está limitado por E/S.

  • Todas las mediciones hasta la fecha han sido en TypeScript. Otros lenguajes diferirán.

Idiomas

16 analizados, mediante tres estrategias. TypeScript, JavaScript y SFC de Vue a través de la API del compilador de TypeScript; Python, Go, Java, Ruby, Rust, PHP, C, C++, C#, Dart, Kotlin y Swift a través de tree-sitter WASM; COBOL a través de un analizador de líneas determinista.

Cada gramática se ejecuta como WASM puro — sin enlaces nativos, sin precompilaciones específicas de plataforma, sin cadena de herramientas de compilación. La calidad de la resolución del grafo de llamadas es más fuerte para TypeScript.

Lo que Euthynos no afirma

Es un analizador estático. Ve importaciones, declaraciones y aristas de llamada. No ve reflexión, envío dinámico, generación de código en tiempo de ejecución, nombres de símbolos construidos con cadenas, importaciones dinámicas o cableado de frameworks — y nunca finge lo contrario.

Estas frases están prohibidas en su salida y la prohibición se aplica mediante pruebas:

is safe · safe to … · no other consumers · all references · unused · fully tested · no impact · cualquier afirmación de prueba matemática de seguridad

Que callers_of devuelva nada significa que el grafo estático no encontró llamantes, nunca que nada llama a esto. Los nombres ambiguos entre módulos producen ningún borde en lugar de una suposición, por lo que las respuestas son una cota inferior y la cantidad de llamadas no resueltas se muestra junto al resultado.

Verifica las afirmaciones tú mismo

Nada aquí te pide que aceptes un número sin verificar:

qué

dónde

El benchmark de tokens/recuperación, preregistrado antes de ejecutarse

research/M2-PREREG.md

Sus resultados, publicados sin modificar

research/M2-RESULTS.md

Dónde nuestros propios números publicados eran incorrectos, y cómo

docs/BENCHMARK-INTEGRITY-AUDIT.md

Mide la latencia en tu propia máquina

scripts/measurement/measure-latency.mjs

Qué es y qué no es verificable aquí — incluyendo por qué las cifras de latencia se difieren

docs/PROVENANCE.md

Ese último no es un accidente de divulgación. Dos de nuestros entornos de benchmark estaban cronometrando errores de validación de argumentos como si fueran mediciones, y una afirmación publicada era incorrecta por tres órdenes de magnitud. La auditoría documenta qué se rompió, qué fue invalidado, qué se volvió a medir y qué sigue sin respaldo.

Lo que no se publica: las claves de respuesta de M2 y el registro completo de sesiones. Cualquier afirmación sobre esos elementos no está verificada desde este repositorio, y preferimos decirlo que insinuar lo contrario.

Euthynos para Equipos

◈  Euthynos para Equipos

El mismo motor, situado entre un pull request y main.

Acceso anticipado Estado Llamadas LLM

Aún no está disponible de forma general. No hay una instancia pública a la que puedas acceder hoy. Esta sección describe software que existe y funciona — para que puedas decidir ahora si merece tu atención — no un producto que puedas comprar en este momento. Únete a la lista de acceso anticipado en euthynos.dev →

Conecta un repositorio a través de una GitHub App. Cada push y pull request se escanea del lado del servidor con el motor de este repositorio, y el resultado llega donde realmente se toma la decisión.

◈ Política de fusión, escrita como reglas

Cinco tipos de reglas, cada una con warn o block:

regla

umbral

health-delta

0–100

contamination-delta

0–100

metric-floor

0–100

min-owners

1–20, entero

no-new-duplication

exacto

Los límites se aplican del lado del servidor. El formulario es una comodidad; no es el validador.

◈ El grafo de dependencias, por escaneo

Cada escaneo emite un artefacto de grafo interactivo: módulos, bordes de importación y los ciclos que no se pueden cortar limpiamente.

Puntuado en cuatro ejes más duplicación:

depth · seams · locality · leverage

Cada uno se informa como una banda — Strong, Stable, Drifting, At Risk — porque la banda es la parte que significa algo.

◈ Una ejecución de verificación en cada PR

El veredicto se registra contra la regla que lo produjo, por lo que "por qué fui bloqueado" tiene una respuesta que no es una sensación.

Los estados de alerta se mantienen entre escaneos: new · ongoing · resolved · archived-until-worse · regressed.

◈ Evidencia que un auditor puede leer

Exporta un rango de fechas y obtén el conjunto de reglas tal como estaba, cada veredicto de fusión en la ventana, cada anulación con su actor y razón escrita, y la cobertura de propiedad por módulo.

No se necesita cuenta para leerlo.

◈ Riesgo de conocimiento, desde el historial de git. Porcentaje de propiedad y factor de autobús por módulo — para que "el módulo más débil también es entendido por una sola persona" sea algo que el panel te dice, en lugar de algo que descubres cuando esa persona se va.


Aquí tampoco hay llamadas LLM. El mismo diff produce el mismo veredicto, cada vez. No se muestrea nada, por lo que no hay nada que alucinar ni nada en lo que inyectar un prompt. Envía la misma rama dos veces, obtén la misma revisión dos veces.

La CLI en este repositorio sigue siendo gratuita, local y con licencia Apache-2.0 — eso es un compromiso, no una prueba. No se comunica con la plataforma, y la plataforma nunca toca tu máquina.

¿Lo quieres cuando esté disponible?

→  Únete a la lista de acceso anticipado en euthynos.dev

La CLI local sigue siendo gratuita para siempre · sin tarjeta de crédito · no se necesita cuenta para usar nada en este repositorio

CLI

El servidor MCP es la superficie principal, pero la CLI funciona de forma independiente:

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 imprime el conjunto completo de banderas y la marca de compilación.

Documentación

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

Seguridad

Reporta vulnerabilidades de forma privada a través de GitHub Security Advisories, no en una incidencia pública. Alcance y expectativas: docs/SECURITY.md.

Licencia

Licencia Apache 2.0 — consulta LICENSE y NOTICE.

Copyright © 2026 Tonil Kumar.

La licencia cubre el código. No cubre el nombre: "Euthynos" se reivindica como una marca comercial no registrada de Tonil Kumar — no se ha solicitado ni concedido ningún registro. Consulta docs/TRADEMARK.md.


A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    A
    maintenance
    Provides local codebase intelligence as an MCP server, enabling AI agents to query dependencies, assess change impact, and produce tamper-evident change evidence packets.
    508
    Apache 2.0
  • A
    license
    -
    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.
    MIT
  • A
    license
    -
    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.
    59
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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