Conducted MCP

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

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
97%
Vollständigkeit des Schemas
90%
Qualität der Benennung
89%
Risiko der Vergiftung
60%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (4)

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

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,694Tokens (Tool-Definitionen)
~1.6 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.32% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

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

Ausführbare Pakete

npmconducted-mcp0.1.1stdio

Remote-Endpunkte

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

Was es kann

Tool-Inventar

Tools (7)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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).

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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 }.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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#"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet7 Tools
verifiziertVersion nicht aufgezeichnet7 Tools
verifiziertVersion nicht aufgezeichnet7 Tools