WATR Software Oracle — estándar de arquitectura por rule_id

152 reglas con postura: enforce bloquea el PR, prefer se justifica. Clean Code, SOLID y agentes.

Should I use this

Quality & Safety

B
Description quality
86%
Schema completeness
70%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_rule' description lacks action verbin get_rule

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~961Tokens (tool definitions)
~823 BTypical response size
Moderate attention impact (0.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "watr-software-oracle": {
      "url": "https://watr-software-oracle.onrender.com/mcp"
    }
  }
}

Remote endpoints

https://watr-software-oracle.onrender.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_rule(rule_id)

Devuelve una regla, smell o meta-heurística completa por su rule_id. Ejemplos de rule_id: CC-FN-01, SOLID-DIP-01, SMELL-14, WATR-MH-02.

Input Schema

{
  "type": "object",
  "properties": {
    "rule_id": {
      "title": "Rule Id",
      "type": "string"
    }
  },
  "required": [
    "rule_id"
  ],
  "title": "get_ruleArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_ruleOutput"
}
🟢search_practices(query, k)

Busca las reglas del estándar WATR que aplican a una consulta o a un fragmento. La consulta debe ir **en inglés**: el corpus está en inglés y la búsqueda es léxica, así que una consulta en español devuelve poco o nada. Traduce la intención antes de llamar ("catch vacío" -> "empty catch swallowing error"). Devuelve top-k con rule_id y stance; usa get_rule para el texto completo.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "k": {
      "default": 5,
      "title": "K",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "search_practicesArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "search_practicesOutput"
}
⚪review_code(code, language)

Devuelve el estándar WATR que aplica a un fragmento, para que TÚ emitas el veredicto. Este servidor no juzga el código: entrega las señales estructurales que observa, las reglas aplicables con su stance, las meta-heurísticas que gobiernan el juicio, y el formato de salida obligatorio. El razonamiento y el veredicto son tuyos — la consistencia la pone el corpus.

Input Schema

{
  "type": "object",
  "properties": {
    "code": {
      "title": "Code",
      "type": "string"
    },
    "language": {
      "default": "",
      "title": "Language",
      "type": "string"
    }
  },
  "required": [
    "code"
  ],
  "title": "review_codeArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "review_codeOutput"
}
⚪judge_code(code, language)

Opinión del corpus sobre un fragmento, con una probabilidad por regla. Diferencia con `review_code`: ahí recibes las reglas y juzgas tú, así que dos clientes sobre el mismo diff pueden discrepar. Aquí el corpus se moja: una pregunta por regla en alcance, y el stance decide qué umbral aplica. ⚠️ NO es una compuerta, y no lo cuelgues de un CI. Medido sobre 13 pares reales (26 mediciones, 6 autores, 2018–2026): deja pasar el 38% de las violaciones, y el barrido completo de umbrales no encuentra nada mejor porque el límite es la resolución del instrumento, no dónde se corta. Para lo que sí sirve: ordenar qué mirar primero y decirte con qué regla, que son 11 aciertos de 13 al comparar un antes contra un después. ⚠️ Manda el fragmento a api.typesafe.ai, un tercero. `review_code` no sale de esta máquina: si el código no puede salir, usa ése.

Input Schema

{
  "type": "object",
  "properties": {
    "code": {
      "title": "Code",
      "type": "string"
    },
    "language": {
      "default": "",
      "title": "Language",
      "type": "string"
    }
  },
  "required": [
    "code"
  ],
  "title": "judge_codeArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "judge_codeOutput"
}
🟢list_domains

Mapa del corpus: dominios, temas y los rule_id de cada uno, con su stance.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "list_domainsArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_domainsOutput"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools