{"serverId":"mcp-registry/io.tooloracle/ampel","tools":[{"name":"article_status","fixed":{"name":"article_status","description":"Detailed Ampel for a specific DORA article. Each check with GREEN/YELLOW/RED conditions and evidence.","inputSchema":{"type":"object","properties":{"article":{"type":"string","description":"e.g. Art. 28"},"entity_id":{"type":"string","description":"Entity ID"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"azure_ad_check","fixed":{"name":"azure_ad_check","description":"Live Azure AD integration: MFA registration %, risky users, conditional access policies. DORA Art. 9 evidence. Requires Azure AD config in integrations_config.json.","inputSchema":{"type":"object","properties":{"force_refresh":{"type":"boolean","description":"Force fresh API call (default true)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"bafin_approve_send","fixed":{"name":"bafin_approve_send","description":"Approve BaFin report for submission (4-eyes principle). Creates signed approval evidence.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string"},"report_id":{"type":"string"},"approver_name":{"type":"string"},"approver_role":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"bridge_approve","fixed":{"name":"bridge_approve","description":"Approve or reject a bridge resolution. On approval: creates signed evidence, upgrades Ampel to GREEN, logs to audit chain.","inputSchema":{"type":"object","properties":{"reject":{"type":"boolean","description":"Set true to reject instead of approve"},"approved_by":{"type":"string","description":"Name + role of approver (e.g. Dr. Mueller, CISO)"},"resolution_id":{"type":"string","description":"Resolution ID from bridge_resolve"},"rejection_reason":{"type":"string","description":"Reason for rejection (if rejecting)"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"bridge_resolve","fixed":{"name":"bridge_resolve","description":"Start bridge resolution workflow. Generates templates (Risk Acceptance, Contract Renegotiation, Concentration Policy, Exit Strategy), tracks approval process. Call bridge_approve to sign off.","inputSchema":{"type":"object","properties":{"check_id":{"type":"string","description":"Check to resolve: art30_c1, art30_c2, art30_c3, art8_c3, art31_c1"},"entity_id":{"type":"string","description":"Entity ID (optional)"},"expiry_days":{"type":"integer","description":"Days until resolution expires (default 30)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161},{"name":"bridge_status","fixed":{"name":"bridge_status","description":"Check status of all bridge resolution workflows for an entity. Shows open, pending, closed, rejected.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID (optional)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"bus_status","fixed":{"name":"bus_status","description":"Oracle Event Bus status: events, cross-refs, connected oracles.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID for cross-refs"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":69},{"name":"check_contract","fixed":{"name":"check_contract","description":"Check DORA Art. 30 contract clauses for a provider. Returns PASS/WARN/BLOCK with missing clauses and bridge classification.","inputSchema":{"type":"object","properties":{"is_cif":{"type":"boolean","description":"Is this a CIF (Critical/Important Function) provider?"},"entity_id":{"type":"string"},"cif_clauses":{"type":"array","items":{"type":"string"},"description":"CIF clauses if applicable"},"provider_id":{"type":"string","description":"Provider ID"},"exit_strategy":{"type":"boolean","description":"Exit strategy documented?"},"standard_clauses":{"type":"array","items":{"type":"string"},"description":"Present standard clauses: service_description, data_location, data_protection, service_availability_sla, incident_notification, audit_right, termination_notice, cooperation_with_authorities"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":243,"tokensAfter":243},{"name":"contract_analyze","fixed":{"name":"contract_analyze","description":"Analyze contract against 15 DORA Art. 30 mandatory clauses. Returns compliance status per clause with confidence score, extracted text, gap reasoning, suggested fix.","inputSchema":{"type":"object","properties":{"document_id":{"type":"string","description":"Document ID from contract_upload"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"contract_status","fixed":{"name":"contract_status","description":"Overview of all analyzed contracts per entity. Shows clause gaps, review status, document versions.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"contract_upload","fixed":{"name":"contract_upload","description":"Upload contract text for DORA Art. 30 analysis. Creates document record with SHA-256 hash, version tracking, audit trail.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID"},"file_name":{"type":"string","description":"Original file name"},"contract_text":{"type":"string","description":"Contract text (extracted from PDF)"},"document_type":{"type":"string","description":"ict_outsourcing_agreement | dpa | sla | master_service_agreement"},"provider_name":{"type":"string","description":"Provider name"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"create_entity","fixed":{"name":"create_entity","description":"Register a new regulated entity.","inputSchema":{"type":"object","properties":{"lei":{"type":"string"},"name":{"type":"string","description":"Entity name"},"entity_type":{"type":"string","description":"Type"},"jurisdiction":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":87,"tokensAfter":87},{"name":"create_trial","fixed":{"name":"create_trial","description":"Create temporary trial entity (48h) for self-service DORA assessment. No login needed.","inputSchema":{"type":"object","properties":{"providers":{"enum":["AWS","SWIFT"],"type":"string","description":"Comma-separated provider names: AWS,SWIFT,Finastra"},"entity_name":{"type":"string","description":"Institute name"},"entity_type":{"type":"string","description":"credit_institution|payment_institution|insurance_undertaking|asset_management|credit_institution_casp"},"jurisdiction":{"type":"string","description":"DE|AT|FR|etc"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":166,"tokensAfter":166},{"name":"cross_regulation_check","fixed":{"name":"cross_regulation_check","description":"Tag findings with cross-regulation impact (DORA + MiCA + AMLR). Shows which DORA findings also affect MiCA insider info or AMLR screening.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"entity_list","fixed":{"name":"entity_list","description":"List all registered regulated entities.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":44,"tokensAfter":44},{"name":"escalation_status","fixed":{"name":"escalation_status","description":"Get findings, SLA breaches, escalation status per entity.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID (empty=all)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":69},{"name":"freshness_check","fixed":{"name":"freshness_check","description":"Run freshness watchdog. Expires stale evidence, downgrades GREEN->YELLOW->GREY if evidence too old.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID (optional, checks all)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":83},{"name":"health_check","fixed":{"name":"health_check","description":"Server + DB status.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":38,"tokensAfter":38},{"name":"llm_clause_check","fixed":{"name":"llm_clause_check","description":"LLM-based DORA Art. 30 contract analysis. Paste contract text, get clause-by-clause PRESENT/PARTIAL/MISSING for all 15 mandatory clauses. Uses Claude API.","inputSchema":{"type":"object","properties":{"contract_text":{"type":"string","description":"Contract text (plain text from PDF). Paste key sections."},"provider_name":{"type":"string","description":"Provider name e.g. Salesforce"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"ping","fixed":{"name":"ping","description":"Quick connectivity test.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":37,"tokensAfter":37},{"name":"provider_country_risk","fixed":{"name":"provider_country_risk","description":"Enrich provider dependencies with OECD economic risk: GDP, unemployment, CLI per provider country. DORA Art. 28-31 relevant.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":85,"tokensAfter":85},{"name":"readiness_check","fixed":{"name":"readiness_check","description":"Full DORA readiness score + Ampel per article. Returns GREEN/YELLOW/RED/GREY for all 26 articles, score 0-100, days until deadline.","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"Entity ID (optional)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"retest_finding","fixed":{"name":"retest_finding","description":"Re-test a finding: collect fresh evidence, reassess check, auto-close if GREEN. Full closed-loop.","inputSchema":{"type":"object","properties":{"finding_id":{"type":"string","description":"Finding ID to re-test"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"run_escalation","fixed":{"name":"run_escalation","description":"Trigger escalation engine: auto-create findings, check SLA, escalate.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"run_trial_assessment","fixed":{"name":"run_trial_assessment","description":"Run complete DORA+MiCA assessment for trial entity. Returns score, gaps, automation potential.","inputSchema":{"type":"object","properties":{"trial_id":{"type":"string"},"entity_id":{"type":"string"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"update_finding","fixed":{"name":"update_finding","description":"Update finding lifecycle: claim, set remediation plan, request re-test, close, or accept risk. Status flow: open -> in_progress -> retest_pending -> closed | risk_accepted.","inputSchema":{"type":"object","properties":{"actor":{"type":"string","description":"Who is performing this action"},"owner":{"type":"string","description":"New owner (for claim)"},"action":{"type":"string","description":"claim | plan | request_retest | close | accept_risk"},"reason":{"type":"string","description":"Close reason (for close)"},"finding_id":{"type":"string","description":"Finding ID"},"accepted_by":{"type":"string","description":"Name (for accept_risk)"},"expiry_days":{"type":"integer","description":"Risk acceptance expiry days (default 90)"},"remediation_plan":{"type":"string","description":"Remediation plan text (for plan)"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":249,"tokensAfter":249}],"toolsChanged":26,"tokensSaved":0,"todo":[{"tool":"audit_trail","params":["entity_id"]},{"tool":"bafin_approve_send","params":["entity_id","report_id","approver_name","approver_role"]},{"tool":"bafin_report_draft","params":["title","entity_id","root_cause","description","incident_id","remediation","affected_clients","affected_services"]},{"tool":"check_contract","params":["entity_id"]},{"tool":"create_entity","params":["lei","jurisdiction"]},{"tool":"cve_asset_map","params":["entity_id"]},{"tool":"generate_trial_report","params":["trial_id","entity_id"]},{"tool":"incident_flow","params":["title","severity","root_cause","description","incident_id","report_type","classification","lessons_learned"]},{"tool":"policy_draft","params":["entity_id"]},{"tool":"register_provider","params":["entity_id","contract_end","certifications","contract_start","annual_cost_eur","substitutability"]},{"tool":"run_trial_assessment","params":["trial_id","entity_id"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}