Skip to content

Catalyst Governance

by Stratogenic-AI · remote · no sign-in to list tools · v1.0.1 · published by GitHub user Stratogenic-AI

Governance middleware for AI agents: permission gates, approvals, compliance scanning, audit ledger.

Final · 1Changes · 18

31 tools: 1 do something that can't be undone, 18 change things and 12 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http catalyst https://catalyst.stratogenic.ai/mcp --header 'X-API-Key: <your-x-api-key>'

Findings

Matches of fixed checks, with the text they matched.

2 warn1 info
  • The server marks "catalyst_evaluate_agent_action" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "catalyst_evaluate_agent_action" says "evaluate": a word for a change.

    What this check looks for
  • The server marks "catalyst_log_task" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The name "catalyst_log_task" says "log": a word for reading.

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...mended). Payload is scrubbed of credentials before storage."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

31 tools

Can't be undone 1Claude Code: ask
  • catalyst_send_lite_eventSend a lifecycle event for a registered AI workflow.1 finding

    Why it is in this group

    • The name "catalyst_send_lite_event" says "send": a word for sending, and what is sent cannot be taken back.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...mended). Payload is scrubbed of credentials before storage."

      What this check looks for
    Description, as the server wrote it
    Send a lifecycle event for a registered AI workflow. event_type examples: run.started, action.executed, approval.requested, run.completed, run.failed. Idempotent via request_id (UUID recommended). Payload is scrubbed of credentials before storage.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
Changes things 18Claude Code: ask
  • catalyst_accept_proposalsAccept one or more proposals, committing them to the flow cycle.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Accept one or more proposals, committing them to the flow cycle. ids: list of proposal `idempotency_key` values from catalyst_list_proposals. Do not pass `task_id` or `id` — the backend looks up proposals by `idempotency_key` and will silently match nothing if the wrong field is used. Acceptance is the governance commit step: items move from review state into live execution state and are recorded in the immutable ledger.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_activate_compliance_frameworkActivate a pre-built compliance framework pack for this organisation.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Activate a pre-built compliance framework pack for this organisation. framework: one of gdpr, soc2, iso27001, hipaa, pci_dss, eu_ai_act, bribery_act, aml_kyc. Once activated, the pack's DENY/REQUIRE/ADVISE rules are merged into every subsequent compliance scan — no document upload required. Requires can_scan entitlement.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_await_approvalCheck approval status for a specific proposal.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check approval status for a specific proposal. Returns approved: true/false and clear guidance on whether to proceed. Call this after catalyst_check_action returns 'proposal_required'. Do NOT proceed with the gated action until approved: true is returned. POLLING vs EVENT-DRIVEN: For interactive sessions, poll this tool. For autonomous long-running workflows, prefer registering a webhook via catalyst_register_approval_webhook(callback_url) so your orchestrator is notified the moment a human acts — no polling loop required.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_bulk_update_tasksBulk update all tasks matching a filter.No findings

    Why it is in this group

    • The name "catalyst_bulk_update_tasks" says "update": a word for a change.
    Description, as the server wrote it
    Bulk update all tasks matching a filter. Growth/Enterprise plans only. filter keys: domain, priority, stage, owner, tag, group_id. updates keys: owner, priority, domain, stage, tags_add, tags_remove. Returns matched and updated counts.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_check_actionCheck if a capability/action is permitted by your governance policy.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Check if a capability/action is permitted by your governance policy. Returns decision: 'allow' | 'proposal_required' | 'deny' with guidance. Call BEFORE any consequential action (API call, data write, send, deploy). If title is provided and decision is 'proposal_required', the intent is logged automatically and proposal_id is returned — no second call needed. If 'proposal_required' without a title, call catalyst_log_task separately. capability examples: 'send_email', 'write_file', 'deploy_code', 'update_record', 'delete_record', 'external_api_call'.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_create_tasks_from_findingsMaterialise compliance findings as actionable flow tasks.No findings

    Why it is in this group

    • The name "catalyst_create_tasks_from_findings" says "create": a word for a change.
    Description, as the server wrote it
    Materialise compliance findings as actionable flow tasks. classes: list of finding classes to convert, e.g. ['MISSING_CONTROL', 'PROHIBITED_ACTION']. Defaults to both. Created tasks enter the governance pipeline like any other ingest.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_decline_proposalsDecline one or more proposals without committing them.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Decline one or more proposals without committing them. ids: list of proposal `idempotency_key` values from catalyst_list_proposals. Do not pass `task_id` or `id` — the backend looks up proposals by `idempotency_key` and will silently match nothing if the wrong field is used. Declined proposals are recorded for audit and learning but are not added to the live flow cycle.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_evaluate_agent_actionEvaluate whether an agent action is permitted by the governance gate.1 finding

    Why it is in this group

    • The name "catalyst_evaluate_agent_action" says "evaluate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "catalyst_evaluate_agent_action" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}; The name "catalyst_evaluate_agent_action" says "evaluate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Evaluate whether an agent action is permitted by the governance gate. Returns decision: 'allow' | 'proposal_required' | 'deny'. High-risk actors with allow decisions are escalated to proposal_required. The actor must be registered and active for this tenant.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_export_ledgerExport the immutable SHA-256 chained audit ledger.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Export the immutable SHA-256 chained audit ledger. since: ISO timestamp to filter entries (inclusive). format: 'json' returns full entries; 'csv' sets entries to null (use REST API for CSV). The ledger is tamper-evident — any modification breaks the hash chain.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_export_workflow_auditExport audit events for an AI workflow as JSON.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Export audit events for an AI workflow as JSON. since: ISO timestamp filter (inclusive). ai_standards_only: limit to events from workflows opted into Built to AI Standards. Suitable for regulatory submissions and investor due diligence.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_ingest_taskIngest one or more tasks into Catalyst governance pipeline.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Ingest one or more tasks into Catalyst governance pipeline. Items should include at minimum a 'title'. Optional fields: details, owner, priority (Low/Medium/High/Critical), stage, domain, due_at, tags, group_id. Returns ingested count and proposal IDs created.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_log_taskLog a task or action into the Catalyst governance pipeline.1 finding

    Why it is in this group

    • The name "catalyst_log_task" says "log": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "catalyst_log_task" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The name "catalyst_log_task" says "log": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Log a task or action into the Catalyst governance pipeline. Records work, decisions, and actions for audit and governance. priority: Low | Medium | High | Critical. domain: security | product | operations | compliance | finance | legal | other. Returns ingested count and any proposal_ids created (if a governance hold applies).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_register_approval_webhookRegister a callback URL to receive proposal approval notifications.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Register a callback URL to receive proposal approval notifications. Subscribes callback_url to proposal.accepted and proposal.declined events. When a human approves or declines any proposal, Catalyst POSTs the event to your URL with the resolved proposal IDs in data.ids. Use this instead of polling catalyst_await_approval for autonomous workflows: register once, let your orchestrator (Temporal, job queue, webhook relay) wake the agent when the relevant proposal_id arrives. Then call catalyst_await_approval once to confirm and proceed. Returns subscription IDs, the expected payload shape, and usage guidance. Returns upgrade_required: true if outbound webhooks are not on your plan.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_register_machine_actorRegister a machine actor (agent, automation) with Catalyst governance.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Register a machine actor (agent, automation) with Catalyst governance. runtime_type: zapier_zap | n8n_workflow | openai_assistant | make_scenario | claude_agent | custom_agent | internal_worker. governance_mode: observe | advisory | proposal | strict. risk_class: low | standard | high. Requires can_configure_ai_workflows entitlement (Enterprise+).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_register_workflowRegister an AI workflow for EU AI Act compliance governance.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Register an AI workflow for EU AI Act compliance governance. risk_level: unacceptable (rejected) | high | limited | minimal. mode: observe | advisory | proposal. High-risk workflows are forced to proposal. Sets ai_standards=True to opt into the Built to AI Standards evidence trail. Requires can_configure_ai_workflows (Enterprise+).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_review_proposalApprove or reject a review-required proposal (AI governance hold).No findings

    Why it is in this group

    • The description's first verb is "approve": a word for a change.
    Description, as the server wrote it
    Approve or reject a review-required proposal (AI governance hold). proposal_id: the `idempotency_key` field from catalyst_list_proposals. Do not pass `task_id` or `id` — the backend looks up by `idempotency_key`. decision must be 'approve' or 'reject'. Approved proposals can then be accepted via catalyst_accept_proposals. Rejected proposals are marked review-rejected in the ledger.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_run_compliance_scanRun a compliance scan against all loaded compliance documents.No findings

    Why it is in this group

    • The name "catalyst_run_compliance_scan" says "run": a word for a change.
    Description, as the server wrote it
    Run a compliance scan against all loaded compliance documents. Detects compliance gaps, conflicts, and policy violations across the current flow cycle. Requires can_scan entitlement. Returns findings grouped by severity.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
  • catalyst_update_taskUpdate a single task in the governance flow.No findings

    Why it is in this group

    • The name "catalyst_update_task" says "update": a word for a change.
    Description, as the server wrote it
    Update a single task in the governance flow. Ledger-recorded. Patch may include: title, details, owner, priority, stage, domain, due_at, status, tags, done. Normalisation is applied automatically.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
Only reads 12Claude Code: allow
  • catalyst_get_compliance_findingsGet the latest compliance findings from the most recent scan.No findings

    Why it is in this group

    • The name "catalyst_get_compliance_findings" says "get": a word for reading.
    Description, as the server wrote it
    Get the latest compliance findings from the most recent scan. Returns findings flattened by category: conflicts, gaps, ok. Each finding includes category, severity, status, and task linkage. Does not trigger a new scan — use catalyst_run_compliance_scan first.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • catalyst_get_dashboardGet the governance dashboard snapshot including all views.No findings

    Why it is in this group

    • The name "catalyst_get_dashboard" says "get": a word for reading.
    Description, as the server wrote it
    Get the governance dashboard snapshot including all views. Returns tenant metadata, execution metrics, and all 5 governance views (execution_flow, ownership_map, compliance_web, risk_heatmap, client_influence).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • catalyst_get_graph_viewsGet all 7 governance graph views for the tenant.No findings

    Why it is in this group

    • The name "catalyst_get_graph_views" says "get": a word for reading.
    Description, as the server wrote it
    Get all 7 governance graph views for the tenant. Views: org_snapshot, execution_flow, ownership_map, compliance_web, risk_heatmap, client_influence, catalyst_metrics. Read-only, derived from flow_cycle on demand. Requires governance_dashboard entitlement.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • catalyst_get_org_summaryGet an AI-generated narrative summary of the org's execution state.No findings

    Why it is in this group

    • The name "catalyst_get_org_summary" says "get": a word for reading.
    Description, as the server wrote it
    Get an AI-generated narrative summary of the org's execution state. time_window: 'last_7_days' or 'last_30_days'. extra_query: optional focus bias (e.g. 'compliance', 'delivery risk'). Returns a MASC-L3 compliant narrative — no individual evaluations. Requires governance_dashboard entitlement.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • catalyst_get_workflow_trustGet the four-component trust score for a registered AI workflow.No findings

    Why it is in this group

    • The name "catalyst_get_workflow_trust" says "get": a word for reading.
    Description, as the server wrote it
    Get the four-component trust score for a registered AI workflow. Score = 0.25×ai_declared + 0.25×risk_eval + 0.25×override + 0.25×(1−failure). Range 0.0–1.0. window_days controls the lookback period (1–365).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_list_compliance_frameworksList all available pre-built compliance framework packs.No findings

    Why it is in this group

    • The name "catalyst_list_compliance_frameworks" says "list": a word for reading.
    Description, as the server wrote it
    List all available pre-built compliance framework packs. Returns each pack (GDPR, SOC 2, ISO 27001, HIPAA, PCI-DSS, EU AI Act, Bribery Act, AML/KYC) with its name, description, rule count, and whether it is currently active for this organisation. Activate a pack with catalyst_activate_compliance_framework.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_list_compliance_rulesList all compliance rules currently in effect for the organisation.No findings

    Why it is in this group

    • The name "catalyst_list_compliance_rules" says "list": a word for reading.
    Description, as the server wrote it
    List all compliance rules currently in effect for the organisation. Returns rules from three sources combined and deduplicated: - Rules extracted from uploaded policy documents - Custom org-level rules (PATCH /compliance/rules) - Rules from any activated framework packs Each rule includes: id, type (DENY/REQUIRE/ADVISE), trigger sentence, severity, scope, remediation guidance, confidence score, and authority citation.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_list_proposalsList all pending governance proposals awaiting acceptance or decline.No findings

    Why it is in this group

    • The name "catalyst_list_proposals" says "list": a word for reading.
    Description, as the server wrote it
    List all pending governance proposals awaiting acceptance or decline. Proposals are work items that have been ingested but not yet committed to the live flow cycle. They require human (or agent) review. Each proposal contains an `idempotency_key` field — this is the canonical proposal identifier. Always use `idempotency_key` (not `task_id` or `id`) when passing proposal IDs to catalyst_accept_proposals, catalyst_decline_proposals, or catalyst_review_proposal.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • catalyst_my_governanceShow your governance profile, actor registration, and plan capabilities.No findings

    Why it is in this group

    • The description's first verb is "show": a word for reading.
    Description, as the server wrote it
    Show your governance profile, actor registration, and plan capabilities. Returns governance_mode (observe/advisory/proposal/strict), risk_class, declared capabilities, and actor_id. Auto-registers you in observe mode on first connection — the lightest governance touch. Also returns plan_capabilities showing which features are active and which require an upgrade — relay any upgrade_required fields to the user so they can unlock compliance scanning or AI workflow governance. Call this first to understand what you are and are not permitted to do.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • catalyst_pending_approvalsList proposals currently awaiting governance approval.No findings

    Why it is in this group

    • The description's first verb is "list": a word for reading.
    Description, as the server wrote it
    List proposals currently awaiting governance approval. Shows proposals with status pending or in review. Use this to check whether an action you submitted is still waiting for human sign-off before you proceed. Returns count and full proposal objects with IDs for catalyst_await_approval.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
  • catalyst_search_tasksSearch normalised tasks in the tenant flow cycle.No findings

    Why it is in this group

    • The name "catalyst_search_tasks" says "search": a word for reading.
    Description, as the server wrote it
    Search normalised tasks in the tenant flow cycle. Performs case-insensitive substring match on title/details. Filter by canonical domain (e.g. security, product, operations) or priority.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
  • catalyst_weekly_summaryGet a 7-day activity rollup: ingested, accepted, declined proposals, domain breakdown, priority breakdown, and average risk score.No findings

    Why it is in this group

    • The description's first verb is "get": a word for reading.
    Description, as the server wrote it
    Get a 7-day activity rollup: ingested, accepted, declined proposals, domain breakdown, priority breakdown, and average risk score. Fully deterministic — no LLM calls.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http catalyst https://catalyst.stratogenic.ai/mcp --header 'X-API-Key: <your-x-api-key>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__catalyst__catalyst_search_tasks",
      "mcp__catalyst__catalyst_list_proposals",
      "mcp__catalyst__catalyst_get_graph_views",
      "mcp__catalyst__catalyst_get_dashboard",
      "mcp__catalyst__catalyst_get_org_summary",
      "mcp__catalyst__catalyst_get_compliance_findings",
      "mcp__catalyst__catalyst_list_compliance_frameworks",
      "mcp__catalyst__catalyst_list_compliance_rules",
      "mcp__catalyst__catalyst_get_workflow_trust",
      "mcp__catalyst__catalyst_weekly_summary",
      "mcp__catalyst__catalyst_my_governance",
      "mcp__catalyst__catalyst_pending_approvals"
    ],
    "ask": [
      "mcp__catalyst__catalyst_ingest_task",
      "mcp__catalyst__catalyst_update_task",
      "mcp__catalyst__catalyst_bulk_update_tasks",
      "mcp__catalyst__catalyst_accept_proposals",
      "mcp__catalyst__catalyst_decline_proposals",
      "mcp__catalyst__catalyst_review_proposal",
      "mcp__catalyst__catalyst_run_compliance_scan",
      "mcp__catalyst__catalyst_create_tasks_from_findings",
      "mcp__catalyst__catalyst_activate_compliance_framework",
      "mcp__catalyst__catalyst_register_machine_actor",
      "mcp__catalyst__catalyst_evaluate_agent_action",
      "mcp__catalyst__catalyst_register_workflow",
      "mcp__catalyst__catalyst_send_lite_event",
      "mcp__catalyst__catalyst_export_workflow_audit",
      "mcp__catalyst__catalyst_export_ledger",
      "mcp__catalyst__catalyst_check_action",
      "mcp__catalyst__catalyst_log_task",
      "mcp__catalyst__catalyst_await_approval",
      "mcp__catalyst__catalyst_register_approval_webhook"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as catalyst. Review it before you use it.