Conducted MCP

Stateless advisor + validator for Conducted Development: kickoff, artifact validation, rule checks.

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
97%
Integridad del esquema
90%
Calidad de los nombres
89%
Riesgo de envenenamiento
60%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'validate_artifact' description contains placeholder texten validate_artifact
  • MEDIUMTool description contains suspicious base64-like encoded stringen decision_log_guidance
  • INFOTool description contains placeholder or incomplete texten validate_artifact

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,694Tokens (definiciones de herramientas)
~1.6 KBTamaño de respuesta típico
Impacto moderado en la atención (1.32% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "conducted-mcp": {
      "command": "npx",
      "args": [
        "conducted-mcp"
      ]
    }
  }
}

Paquetes ejecutables

npmconducted-mcp0.1.1stdio

Puntos de conexión remotos

https://conducted-mcp.jonathanmostov.workers.dev/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (7)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢validate_artifact(artifact_type, content)

Strictly check whether a Conducted Development artifact's text satisfies the methodology's required structure. Supply the artifact's type and its full text (the server never reads files). Returns { valid, missing, warnings }: `missing` lists required sections that are absent, empty, or contain only unmodified template placeholder text (blocking); `warnings` lists sections that are present but look thin (advisory, non-blocking). `valid` is true iff `missing` is empty.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "artifact_type": {
      "type": "string",
      "enum": [
        "goal_brief",
        "intent_doc",
        "session_log",
        "standup"
      ],
      "description": "Which artifact to validate."
    },
    "content": {
      "type": "string",
      "description": "The full markdown text of the artifact to validate."
    }
  },
  "required": [
    "artifact_type",
    "content"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴kickoff_questions(project_type, detected)

Return the branched kickoff interview (DECISIONS.md D3/D4). Supply `project_type`: 'greenfield' asks the full set; 'brownfield' uses the agent-supplied `detected` facts (language, framework, tests, CI, existing docs) to pre-fill candidates and drop fully-inferable questions — except LOCKED_DOCS, which is always asked because it is human judgment. Returns { project_type, questions, inferred, notes }; the server reads no files.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "project_type": {
      "type": "string",
      "enum": [
        "greenfield",
        "brownfield"
      ],
      "description": "'greenfield' or 'brownfield'."
    },
    "detected": {
      "type": "object",
      "properties": {
        "project_name": {
          "type": "string"
        },
        "language": {
          "type": "string"
        },
        "framework": {
          "type": "string"
        },
        "test_framework": {
          "type": "string"
        },
        "ci": {
          "type": "string"
        },
        "package_manager": {
          "type": "string"
        },
        "existing_docs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false,
      "description": "Facts the agent detected by inspecting the repo (brownfield only)."
    }
  },
  "required": [
    "project_type"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪kickoff_plan(project_type, answers, detected, existing)

Assemble, from the bundled templates, the four `_template.md` copies (front-matter tokens replaced), `decision-log.md`, and a filled `AGENT_CONVENTIONS.md` (kickoff guide Steps 2–5). Supply `project_type`, the interview `answers`, optional `detected` (brownfield pre-fill fallback), and optional `existing` (the agent's inventory of files already present). Returns { files: [{ path, content, action }], missing, open_questions, warnings }. The plan is ready iff `missing` is empty (D5 strict); a file with any unresolved {{…}} token is reported in `missing`. Idempotent: already-present files are 'review'/'skip', never overwritten. The server returns content + paths only — it writes nothing (Model C, D2/D6).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "project_type": {
      "type": "string",
      "enum": [
        "greenfield",
        "brownfield"
      ],
      "description": "'greenfield' or 'brownfield'."
    },
    "answers": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        ]
      },
      "description": "Confirmed interview answers keyed by token id (e.g. PROJECT_NAME, LOCKED_DOCS)."
    },
    "detected": {
      "type": "object",
      "properties": {
        "project_name": {
          "type": "string"
        },
        "language": {
          "type": "string"
        },
        "framework": {
          "type": "string"
        },
        "test_framework": {
          "type": "string"
        },
        "ci": {
          "type": "string"
        },
        "package_manager": {
          "type": "string"
        },
        "existing_docs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false,
      "description": "Facts the agent detected by inspecting the repo (brownfield only)."
    },
    "existing": {
      "type": "object",
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false,
      "description": "Agent inventory of files already present in the target (for idempotent re-runs)."
    }
  },
  "required": [
    "project_type",
    "answers"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪next_procedure(phase, facts)

Return the ordered procedure for where the agent is in the methodology loop. Supply `phase` (one of: kickoff, goal_brief, intent_doc, session_open, session_active, session_close, standup) and optional `facts` (e.g. a ticket id) to tailor the output. Returns { steps, reads_first, escalation_points, notes? } sourced from the bundled guides and conventions — the procedure half of advisor + validator. The server reads no files.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "phase": {
      "type": "string",
      "enum": [
        "kickoff",
        "goal_brief",
        "intent_doc",
        "session_open",
        "session_active",
        "session_close",
        "standup"
      ],
      "description": "Which phase of the methodology loop the agent is in."
    },
    "facts": {
      "type": "object",
      "properties": {
        "ticket": {
          "type": "string"
        },
        "work_dir": {
          "type": "string"
        },
        "goal_brief": {
          "type": "string"
        }
      },
      "additionalProperties": false,
      "description": "Optional facts to weave into the procedure (e.g. ticket id, work dir)."
    }
  },
  "required": [
    "phase"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪standup_due(gate_reached, dependency_intersection, working_days_since_last_standup, last_standup_date, today)

Given agent-supplied facts, decide whether a standup is due. Triggers in priority order: a deliverable gate reached → 'gate'; else a dependency intersection → 'intersection'; else more than five working days since the last standup → 'weekly'; else 'none'. Working days are an input (the working week varies by team), never computed from a calendar. Returns { due, reason, detail }.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "gate_reached": {
      "type": "boolean"
    },
    "dependency_intersection": {
      "type": "boolean"
    },
    "working_days_since_last_standup": {
      "type": "number"
    },
    "last_standup_date": {
      "type": "string"
    },
    "today": {
      "type": "string"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢evaluate_gate(gates, content)

Encode the goal-brief rule that no session may begin while any gate is open. Supply either a structured `gates` list ([{ id, resolved }]) or a goal-brief `content` string, in which case the GATE LIST checkboxes (- [ ] / - [x]) are parsed. Returns { all_resolved, unresolved, may_begin } where may_begin === all_resolved. The server reads no files — the content is agent-supplied.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "gates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "resolved": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "resolved"
        ],
        "additionalProperties": false
      },
      "description": "Structured gate list."
    },
    "content": {
      "type": "string",
      "description": "A goal-brief markdown string whose GATE LIST is parsed."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡decision_log_guidance(escalation_fired, gate_resolved_cross_cutting, affects_multiple_tickets, override_architectural, confined_to_one_session)

Encode the Decision-Log 'when to use it' rules. Set whichever apply: `escalation_fired`, `gate_resolved_cross_cutting`, `affects_multiple_tickets`, `override_architectural`, `confined_to_one_session`. Returns { should_log, reason, entry_template? }; when should_log is true the Context/Trigger/Decision/Rationale/Affects skeleton is returned. A decision confined to one session does not need an entry — the session notes suffice.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "escalation_fired": {
      "type": "boolean"
    },
    "gate_resolved_cross_cutting": {
      "type": "boolean"
    },
    "affects_multiple_tickets": {
      "type": "boolean"
    },
    "override_architectural": {
      "type": "boolean"
    },
    "confined_to_one_session": {
      "type": "boolean"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada7 herramientas
verificadoversión no registrada7 herramientas
verificadoversión no registrada7 herramientas