Skip to content

MCP-Tools

Der citadel-MCP-Server bietet 29 citadel_*-Tools — ein dünner Wrapper über die REST-API (die Quelle der Wahrheit), authentifiziert mit der License des Agenten. Beide Transports (streamable-HTTP POST /api/mcp und stdio) bieten dieselben Tools.

Konventionen unten:

  • Sektoren: FRONTEND · BACKEND · QA · INFRA · SECURITY · DESIGN.
  • Scope-Badges markieren Tools, die einen Fähigkeits-Scope auf der License brauchen: plan (Planner) oder recon (Scout/Interrogator). Alles andere funktioniert mit jeder gültigen License (im Rahmen des Sektor-Scopes).
  • Jedes Tool nennt den REST-Endpoint, den es aufruft — Statuscodes und Payloads siehe REST-Referenz.

Session & Ausrüstung

citadel_acquire_license

Session starten: eine kurzlebige, sektor-gebundene Session-License holen (der Acquire-Handshake) und den Agent-Kontext bekommen (Alias, Sektoren, Scopes, Projekt). Mit konfiguriertem Provisioning-Key wird eine frische Session-License geprägt; mit einer statischen License ist es nur ein Check-in. Einmal vor allen anderen Tools aufrufen.

ParameterTypBeschreibung
sectorsSector[] · optionalDiesen Agenten auf diese Sektoren beschränken (Default: die Obergrenze des Keys).
scopes("plan"|"recon")[] · optionalFähigkeits-Scopes anfordern.
aliasstring · optionalAnzeigename des Agenten im HQ.
ttlMinutesint > 0 · optionalLebensdauer der Session-License.

POST /api/v1/agent/acquire (Provisioning-Key) oder POST /api/v1/agent/check-in (statische License).

citadel_get_briefing

Das geschichtete Projekt-Briefing holen (Vision, aktive Operation, Q-Ausrüstungs-Zusammenfassungen, Archiv-Zusammenfassungen).

ParameterTypBeschreibung
operationstring · optionalOperation-Key zur Eingrenzung (z. B. OP-1).

GET /api/v1/projects/:id/briefing

citadel_get_quality_gates

Die aktiven Quality Gates des Projekts auflisten. Keine Parameter. → GET /api/v1/projects/:id/quality-gates

citadel_get_harness

Die Harness-Definitionen auflisten (Build- / Test- / Lint-Kommandos). Keine Parameter. → GET /api/v1/projects/:id/harness

citadel_get_design_guidelines

Die Design Guideline + Theme-Registry für das aktive (oder benannte) Theme holen.

ParameterTypBeschreibung
themestring · optionalTheme-Key (Default: active).

GET /api/v1/projects/:id/design-guidelines?theme=active

Orders & Mission-Lesezugriffe

citadel_check_orders

Auf unverbrauchte Control Orders prüfen (pause / stand_down / redirect). standDown: true heißt stopp. Keine Parameter. → GET /api/v1/agent/orders

citadel_claim_next_mission

Atomar die nächste ready-Mission in deinem/n Sektor(en) claimen. Keine Parameter. → POST /api/v1/agent/claim-next

citadel_get_mission

Eine Mission per id holen.

ParameterTypBeschreibung
missionIdstringMission-id.

GET /api/v1/missions/:id

citadel_list_missions

Alle Missions des Projekts auflisten. Keine Parameter. → GET /api/v1/projects/:id/missions

Planung · plan scope

citadel_plan_operation plan

Eine Operation (Sprint) planen. Angelegt als planned, oder active bei activate: true.

ParameterTypBeschreibung
codenamestring · PflichtOperation-Codename.
objectivestring · optionalWas die Operation liefert.
sectorsInScopeSector[] · optionalSektoren, die die Operation berührt.
capacityPointsint > 0 | null · optionalKapazität für den Sprint.
successCriteriastring[] · optionalDefinition of Done der Operation.
activateboolean · optionalSofort aktivieren.

POST /api/v1/agent/operations

citadel_create_mission plan

Eine Mission im Backlog anlegen (oder ready). Per Key an eine Operation/Parent hängen (OP-1 / WEB-42).

ParameterTypBeschreibung
titlestring · PflichtMission-Titel.
sectorSector · PflichtEigentümer-Sektor.
typedesign|feature|test|bugfix|spike|chore|research · optionalMission-Typ.
objectivestring · optionalDas Ziel.
briefingstring · optionalVoller Briefing-Text.
prioritylow|medium|high|urgent · optionalPriorität.
estimatePointsint > 0 | null · optionalSchätzung.
acceptanceCriteriastring[] · optionalAkzeptanz-Checkliste.
requiredSkillsstring[] · optionalBenötigte Skills.
operationKeystring · optionalAn diese Operation hängen (OP-1).
parentKeystring · optionalParent-Mission-Key.
statusbacklog|ready · optionalready = sofort claimbar.

POST /api/v1/agent/missions

citadel_update_mission plan

Eine bestehende Mission pflegen (Titel / Ziel / Priorität / Schätzung / Sektor / Operation per Key …). Nicht den Status — Statuswechsel laufen über die Lifecycle-Tools und Gates.

ParameterTypBeschreibung
missionstring · PflichtMission-id oder -Key (WEB-42).
title, objective, briefingstring · optionalTextfelder.
typeMission-Typ · optionalTyp ändern.
sectorSector · optionalSektor umhängen.
priorityPriorität · optionalPriorität ändern.
estimatePointsint > 0 | null · optionalSchätzung.
acceptanceCriteria, requiredSkillsstring[] · optionalListen.
orderIndexint · optionalBacklog-Reihenfolge.
operationKeystring | null · optionalZu einer Operation verschieben / lösen.

PATCH /api/v1/agent/missions/:id

Zwei Missions per Key mit einer typisierten, bidirektionalen Referenz verknüpfen.

ParameterTypBeschreibung
sourceKeystring · PflichtQuell-Mission-Key.
targetKeystring · PflichtZiel-Mission-Key.
linkTypeenum · Pflichtspawned_from · spawns · tests · tested_by · fixes · fixed_by · blocks · blocked_by · relates_to · duplicates · part_of · follow_up_of

POST /api/v1/agent/links

citadel_propose_quality_gate plan

Ein aus den Anforderungen abgeleitetes Quality Gate vorschlagen. Es landet pending und erzwingt nichts, bis ein Manager es im HQ aktiviert (M's Desk / Q-Branch).

ParameterTypBeschreibung
keystring · PflichtLowercase-dashed id, projekt-eindeutig (z. B. review-gate).
namestring · PflichtMenschlicher Name.
appliesToStatusMission-Status · PflichtWelchen Board-Status das Gate bewacht.
ruleObjekt · optionalrequireArtifacts · requireColdRead · requireAcceptanceChecked · requireHarnessPass (alle boolean).
blockingboolean · optionalOb es hart blockt.

POST /api/v1/agent/quality-gates

Das Archiv & Cold Read

citadel_file_dossier

Ein Design-Dossier für eine Mission anlegen (bewegt designingcold_read).

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.
titlestring · PflichtDossier-Titel.
sectionsRecord<string,string> · optionalBenannte Abschnitte (Problem, Plan, …).
affectedFilesstring[] · optionalVom Plan berührte Dateien.

POST /api/v1/missions/:id/dossier

citadel_run_cold_read

Ein Cold-Read-Urteil als kontextloser Recruit abgeben (passready, faildesigning). Nie das eigene Dossier cold-readen.

ParameterTypBeschreibung
dossierIdstring · PflichtDossier-id.
verdictpass|fail · PflichtDas Urteil.
comprehensionNotesstring · optionalWas du verstanden hast.
openQuestionsstring[] · optionalUnklarheiten.

POST /api/v1/dossiers/:id/cold-read

Brownfield-Onboarding · Das Archiv

citadel_read_archive

Das volle Archiv lesen (alle zertifizierten KnowledgeDocs inkl. bodyMarkdown). Vor dem Planen eines Brownfield-Projekts nutzen, um zu sehen, was Scout/Interrogator abgelegt haben. Keine Parameter. → GET /api/v1/agent/knowledge

citadel_write_knowledge recon

Ein KnowledgeDoc ins Archiv schreiben (Scout-Repo-Recon / Interrogator-Debrief). Upsert pro Pfad; mit parentPath verschachteln. Schreibzugriffe landen quarantäniert — ein Fakt erreicht ein Briefing erst nach Zertifizierung durch einen fremden Akteur oder HQ.

ParameterTypBeschreibung
pathstring · PflichtDoc-Pfad / id (Upsert-Key), z. B. server/ oder INTEL/constraints.
summarystring · PflichtEinzeiler (erscheint in Briefings).
bodyMarkdownstring · optionalVoller Text.
levelint 0..10 · optionalTiefe in der README-Hierarchie.
parentPathstring · optionalPfad des Parent-Docs.

POST /api/v1/agent/knowledge

citadel_verify_knowledge

Fakten-Cold-Read: ein quarantäniertes KnowledgeDoc zertifizieren oder ablehnen, damit es ein Briefing erreichen kann (oder nie). Kontextlos-Regel — du darfst kein Doc verifizieren, das deine eigene License geschrieben hat.

ParameterTypBeschreibung
docIdstring · PflichtKnowledgeDoc-id.
verdictcertify|reject · PflichtDas Urteil.
notesstring · optionalReviewer-Notizen.
reasonstring · optionalPflicht bei verdict = reject.

POST /api/v1/knowledge/:id/verify

citadel_delete_knowledge recon

Ein KnowledgeDoc per Pfad aus dem Archiv zurückziehen (ein veraltetes Recon-Doc oder ein INTEL/*-Eintrag, den der Operator entfernt haben will).

ParameterTypBeschreibung
pathstring · PflichtDoc-Pfad.

DELETE /api/v1/agent/knowledge?path=<p>

citadel_finish_recon recon

Das Ende eines Recon-Laufs signalisieren, nachdem KnowledgeDocs abgelegt wurden. Löst eine Archiv-aktualisiert-Benachrichtigung fürs HQ aus (statt einer Glocke pro Doc). Einmal am Ende aufrufen. Keine Parameter. → POST /api/v1/agent/knowledge/finish

Hand-off & Zusammenarbeit

citadel_hand_off_mission

Eine neue Mission in einem anderen Sektor mit geteiltem Kontext + einer typisierten Referenz übergeben. Die neue Mission erbt Dossier + Artefakte + eine Rück-Referenz.

ParameterTypBeschreibung
missionIdstring · PflichtQuell-Mission.
sectorSector · PflichtZiel-Sektor.
typeMission-Typ · PflichtTyp der neuen Mission.
titlestring · PflichtTitel der neuen Mission.
objective, briefingstring · optionalKontext fürs Ziel.
linkTypetests|fixes|blocks|relates_to|follow_up_of|duplicates · optionalReferenz-Typ.
notestring · optionalHand-off-Notiz.

POST /api/v1/agent/missions/:id/hand-off

citadel_attach_artifact

Ein Artefakt anhängen. Ein test_report erfüllt das Harness-Gate.

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.
kindpr|commit|file|url|test_report · PflichtArtefakt-Art.
urlstring · PflichtArtefakt-URL.
labelstring · PflichtAnzeige-Label.

POST /api/v1/agent/missions/:id/artifacts

citadel_add_comment

Einen Kommentar / Work-Log-Eintrag zu einer Mission hinzufügen.

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.
bodystring · PflichtKommentartext.

POST /api/v1/agent/missions/:id/comments

Lifecycle

citadel_report_blocker

Einen Blocker auf einer geclaimten Mission melden (→ blocked).

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.
reasonstring · PflichtWarum blockiert.

POST /api/v1/agent/missions/:id/block

citadel_request_human_input

HQ um eine Entscheidung bitten und die Mission dauerhaft aussetzen (→ waiting_human). Für echte Mehrdeutigkeit, die ein Mensch klären muss — nicht für Hindernisse (dafür citadel_report_blocker). Die Lease-Uhr stoppt; HQ antwortet; die Mission geht zurück ins Backlog und ein frischer Agent macht mit der Antwort im Dossier weiter. Beende deinen Lauf nach diesem Aufruf.

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.
questionstring · PflichtDie benötigte Entscheidung.
contextstring · optionalHintergrund fürs HQ.
urgencylow|medium|high · optionalWie dringend.
formatfree_text|yes_no|multiple_choice · optionalErwartete Antwortform.
choicesstring[] · optionalOptionen für multiple_choice.

POST /api/v1/agent/missions/:id/request-human-input

citadel_submit_for_review

Eine geclaimte Mission zum Review einreichen (→ in_review, nicht-blockierend).

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.

POST /api/v1/agent/missions/:id/submit

citadel_heartbeat

Die Lease einer geclaimten Mission verlängern (bei langer Arbeit aufrufen, damit der Watchdog sie nicht neu einreiht).

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.

POST /api/v1/agent/missions/:id/heartbeat

citadel_complete_mission

Eine geclaimte Mission abschließen (erzwingt Quality Gates; → done). Vorher benötigte Artefakte anhängen.

ParameterTypBeschreibung
missionIdstring · PflichtMission-id.
resultsuccess|failed · optionalErgebnis-Flag.
outcomestring · optionalFreitext-Ergebniszusammenfassung.

POST /api/v1/agent/missions/:id/complete