Oura (Ouroboros) es un servidor MCP para iteración inteligente automatizada.
La serpiente que refina código a través de ciclos infinitos de mejora.
- Loop Engine: iteraciones automáticas con detección de convergencia
- Feedback multi-fuente: tests, lint, typecheck, custom
- Sub-agentes: Security Auditor, Refactor Engine, Anti-deletion Guard, Code Optimizer
- Integración GitHub: PRs, workflows, actions, auto-commit, multi-repo
- Plugin system: hooks extensibles para eventos del loop
- Synapsis bridge: persistencia en Synapsis memory + task orchestration
- Config: TOML + env vars (
OURA_*)
Oura está compuesto por 14 módulos organizados en capas:
| Capa | Módulos | Responsabilidad |
|---|---|---|
| Transporte | mcp/mod.rs | Protocolo JSON-RPC 2.0 sobre stdio |
| Dispatch | mcp/handlers.rs, mcp/resources.rs | Enrutamiento de 20 herramientas MCP |
| Motor | engine.rs, feedback.rs | Bucle de iteración con detección de convergencia |
| Análisis | agents.rs, profile.rs | Seguridad, refactor, perfil de proyecto |
| Utilidades | fs_utils.rs, config.rs, events.rs, error.rs, types.rs, traits.rs | Soporte: paths seguros, config, eventos, tipos |
cargo install --path .O descarga el binario de releases.
# Iniciar config por defecto
oura --init
# O usar env varsexport OURA_GITHUB_TOKEN=ghp_xxx
export OURA_GITHUB_OWNER=MethodWhite
export OURA_GITHUB_REPO=my-project
export OURA_MAX_ITERATIONS=50[loop_engine]
max_iterations = 20convergence_threshold = 90.0feedback_sources = ["test", "lint"]
[github]
enabled = truedefault_owner = "MethodWhite"default_repo = "my-project"auto_commit = trueauto_pr = true
[synapsis]
enabled = trueendpoint = "http://localhost:7438"Añade a opencode.json / claude-code.json / cursor.json:
{
"mcpServers": {
"oura": {
"type": "stdio",
"command": "/path/to/oura"
}
}
}| Tool | Descripción |
|---|---|
oura_start_loop | Inicia loop de iteración con goal |
oura_iterate | Ejecuta un paso manual |
oura_loop_status | Estado del loop actual |
oura_loop_stop | Detiene el loop |
oura_results | Resultados acumulados |
oura_configure | Actualiza configuración (maxIterations, threshold, workingDirectory) |
oura_working_dir | Cambia el directorio de trabajo |
oura_plugin_load | Carga un plugin |
oura_plugin_list | Lista plugins cargados |
oura_analyze_security | Auditoría de seguridad (9 patrones) |
oura_analyze_code | Análisis de clean code |
oura_analyze_project | Escanea estructura del proyecto |
oura_check_integrity | Verifica integridad de símbolos |
oura_guard_destructive | Protege contra operaciones destructivas |
oura_cleanup | Limpia artefactos temporales |
oura_version | Versión e información de build |
oura_update | Actualiza Oura desde git + cargo build |
oura_profile | Detecta perfil del proyecto |
oura_verify | Verifica licencias y dependencias |
mcp_call | Llama a tools de otros servidores MCP |
| Métrica | Valor |
|---|---|
| Tests | 58 pasando |
| Cobertura clippy | 0 warnings |
unwrap() en producción | 0 |
| Deuda técnica corregida | ~55 issues |
| Lenguaje | Rust 1.86+ |
| Licencia | MIT |
MIT — ver LICENSE.
Hecho con 🐍 por MethodWhite