coso-mcp
Open COSO internal-control review MCP: scope, risk, controls, sampling, testing, workpapers.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (10)
- LOWin get_server_info
- LOWin get_principle
- LOWin get_component
- LOWin get_engagement
- LOWin register_risk
- LOWin register_control
- LOWin compute_sample_size
- LOWin classify_deficiency
- LOWin assess_principle
- LOWin assess_component
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
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": {
"coso-mcp": {
"command": "npx",
"args": [
"@simonmak-ascent/coso-mcp"
]
}
}
}Ausführbare Pakete
0.1.1stdioRemote-Endpunkte
https://internal-control.ascent-partners.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (39)
🟢get_server_info
Return the server identity, the COSO framework it covers, and the mandatory disclaimer.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"framework": {
"type": "string"
},
"disclaimer": {
"type": "string"
}
},
"required": [
"name",
"version",
"title",
"description",
"framework",
"disclaimer"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_components
List the five components of the COSO Internal Control—Integrated Framework (ICIF-2013).
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"framework": {
"type": "string"
},
"count": {
"type": "number"
},
"components": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"control-environment",
"risk-assessment",
"control-activities",
"information-communication",
"monitoring-activities"
]
},
"number": {
"type": "number"
},
"name": {
"type": "string"
},
"summary": {
"type": "string"
},
"principles": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"id",
"number",
"name",
"summary",
"principles"
],
"additionalProperties": false
}
}
},
"required": [
"framework",
"count",
"components"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_principles(component)
List the 17 principles of the COSO ICIF-2013, optionally filtered to a single component.
Eingabe-Schema
{
"type": "object",
"properties": {
"component": {
"description": "Restrict to a single component id.",
"type": "string",
"enum": [
"control-environment",
"risk-assessment",
"control-activities",
"information-communication",
"monitoring-activities"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"framework": {
"type": "string"
},
"count": {
"type": "number"
},
"principles": {
"type": "array",
"items": {
"type": "object",
"properties": {
"number": {
"type": "number"
},
"id": {
"type": "string"
},
"component": {
"type": "string",
"enum": [
"control-environment",
"risk-assessment",
"control-activities",
"information-communication",
"monitoring-activities"
]
},
"statement": {
"type": "string"
}
},
"required": [
"number",
"id",
"component",
"statement"
],
"additionalProperties": false
}
}
},
"required": [
"framework",
"count",
"principles"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_principle(number, id)
Return a single COSO principle by framework number or slug, including its paraphrased points of focus.
Eingabe-Schema
{
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"maximum": 17
},
"id": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"principle": {
"anyOf": [
{
"type": "object",
"properties": {
"number": {
"type": "number"
},
"id": {
"type": "string"
},
"component": {
"type": "string",
"enum": [
"control-environment",
"risk-assessment",
"control-activities",
"information-communication",
"monitoring-activities"
]
},
"statement": {
"type": "string"
},
"pointsOfFocus": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"id",
"summary"
],
"additionalProperties": false
}
}
},
"required": [
"number",
"id",
"component",
"statement",
"pointsOfFocus"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"found",
"principle"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_component(id)
Return a single COSO component by id, with its principles.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"control-environment",
"risk-assessment",
"control-activities",
"information-communication",
"monitoring-activities"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"component": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"enum": [
"control-environment",
"risk-assessment",
"control-activities",
"information-communication",
"monitoring-activities"
]
},
"number": {
"type": "number"
},
"name": {
"type": "string"
},
"summary": {
"type": "string"
},
"principles": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"id",
"number",
"name",
"summary",
"principles"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"found",
"component"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_objective_categories
List the three COSO objective categories (operations, reporting, compliance).
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"objectiveCategories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"id",
"name",
"summary"
],
"additionalProperties": false
}
}
},
"required": [
"count",
"objectiveCategories"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_assertions
List the assertions used to frame control objectives: completeness, existence/occurrence, accuracy, valuation, obligations/rights, presentation/disclosure.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"assertions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"id",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"count",
"assertions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡create_engagement(title, entity, period, id, materiality)
Create a new internal-control review engagement. Returns the engagement id used by all later tools.
Eingabe-Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Engagement title."
},
"entity": {
"type": "string",
"minLength": 1,
"description": "Entity or business unit under review."
},
"period": {
"description": "Review period, e.g. 2025 or 2025-H2.",
"type": "string",
"minLength": 1
},
"id": {
"description": "Optional explicit engagement id.",
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"materiality": {
"type": "object",
"properties": {
"basis": {
"type": "string"
},
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
}
}
},
"required": [
"title",
"entity"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"engagement": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"entity": {
"type": "string"
},
"period": {
"type": "string"
},
"framework": {
"type": "string"
},
"status": {
"type": "string"
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
}
},
"required": [
"id",
"title",
"entity",
"framework",
"status",
"createdAt",
"updatedAt"
],
"additionalProperties": false
}
},
"required": [
"engagement"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_engagement(id)
Return an engagement by id.
Eingabe-Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"engagement": {
"anyOf": [
{},
{
"type": "null"
}
]
}
},
"required": [
"found",
"engagement"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_engagements
List all engagement ids and titles.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"engagements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"entity": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"id",
"title",
"entity",
"status"
],
"additionalProperties": false
}
}
},
"required": [
"count",
"engagements"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡add_scope_item(engagementId, area, objectiveCategory, assertions, rationale, ...)
Add a significant account/process to the review scope, with its objective category and assertions.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"area": {
"type": "string",
"minLength": 1,
"description": "Significant account or process."
},
"objectiveCategory": {
"type": "string",
"enum": [
"operations",
"reporting",
"compliance"
]
},
"assertions": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"completeness",
"existence-occurrence",
"accuracy",
"valuation",
"obligations-rights",
"presentation-disclosure"
]
}
},
"rationale": {
"type": "string"
},
"inScope": {
"default": true,
"type": "boolean"
}
},
"required": [
"engagementId",
"area",
"objectiveCategory"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"scopeItem": {}
},
"required": [
"scopeItem"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_scope_items(engagementId)
List the scope items for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"scopeItems": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"scopeItems"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪register_risk(engagementId, description, cause, impact, likelihood, ...)
Register a risk to objectives, with likelihood, assertions, related COSO principles and a fraud flag.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"description": {
"type": "string",
"minLength": 1
},
"cause": {
"type": "string"
},
"impact": {
"type": "string"
},
"likelihood": {
"default": "medium",
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"assertions": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"completeness",
"existence-occurrence",
"accuracy",
"valuation",
"obligations-rights",
"presentation-disclosure"
]
}
},
"principles": {
"default": [],
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 17
}
},
"fraud": {
"default": false,
"type": "boolean"
},
"scopeItemId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId",
"description"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"risk": {}
},
"required": [
"risk"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_risks(engagementId)
List the risks registered for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"risks": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"risks"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪register_control(engagementId, description, type, frequency, key, ...)
Register a key control with its type, frequency, linked risks, assertions and COSO principles.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"description": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"manual",
"automated",
"it-dependent-manual"
]
},
"frequency": {
"type": "string",
"enum": [
"annual",
"quarterly",
"monthly",
"weekly",
"daily",
"per-transaction"
]
},
"key": {
"default": true,
"type": "boolean"
},
"riskIds": {
"default": [],
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"assertions": {
"default": [],
"type": "array",
"items": {
"type": "string",
"enum": [
"completeness",
"existence-occurrence",
"accuracy",
"valuation",
"obligations-rights",
"presentation-disclosure"
]
}
},
"principles": {
"default": [],
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 17
}
},
"owner": {
"type": "string"
},
"scopeItemId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId",
"description",
"type",
"frequency"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"control": {}
},
"required": [
"control"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_controls(engagementId)
List the controls registered for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"controls": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"controls"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_audit_log(engagementId)
Return the append-only audit events recorded for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"events": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"events"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢compute_sample_size(frequency, risk, populationSize, priorDeficiency, externalReliance)
Recommend a sample size for a control from its frequency, risk and population size, with a documented rationale.
Eingabe-Schema
{
"type": "object",
"properties": {
"frequency": {
"type": "string",
"enum": [
"annual",
"quarterly",
"monthly",
"weekly",
"daily",
"per-transaction"
]
},
"risk": {
"default": "moderate",
"type": "string",
"enum": [
"low",
"moderate",
"high"
]
},
"populationSize": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"priorDeficiency": {
"default": false,
"type": "boolean"
},
"externalReliance": {
"default": false,
"type": "boolean"
}
},
"required": [
"frequency"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"frequency": {
"type": "string"
},
"requestedRisk": {
"type": "string"
},
"effectiveRisk": {
"type": "string"
},
"recommended": {
"type": "number"
},
"populationSize": {
"type": "number"
},
"capped": {
"type": "boolean"
},
"rationale": {
"type": "string"
}
},
"required": [
"frequency",
"requestedRisk",
"effectiveRisk",
"recommended",
"capped",
"rationale"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡create_population(engagementId, controlId, description, period, currency, ...)
Register the population for a control — either an explicit item list or a declared size. Bounded to 10000 items.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"controlId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"description": {
"type": "string",
"minLength": 1
},
"period": {
"type": "string"
},
"currency": {
"type": "string"
},
"items": {
"maxItems": 10000,
"type": "array",
"items": {
"type": "object",
"properties": {
"reference": {
"type": "string",
"minLength": 1
},
"date": {
"type": "string"
},
"amount": {
"type": "number"
}
},
"required": [
"reference"
]
}
},
"declaredSize": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"engagementId",
"description"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"population": {}
},
"required": [
"population"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_populations(engagementId)
List the populations registered for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"populations": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"populations"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢select_sample(engagementId, populationId, controlId, method, sampleSize, ...)
Select a reproducible sample from a population. Seeded (deterministic) for random/systematic/haphazard; targeted takes explicit references. Records the method, seed and references.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"populationId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"controlId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"method": {
"type": "string",
"enum": [
"random",
"systematic",
"targeted",
"haphazard"
]
},
"sampleSize": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"seed": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"rationale": {
"type": "string"
},
"targetedReferences": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"engagementId",
"populationId",
"method"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"sample": {}
},
"required": [
"sample"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪record_test_result(engagementId, controlId, sampleId, populationId, attribute, ...)
Record attribute-level outcomes (pass/fail/na) for a tested sample, with an optional conclusion.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"controlId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"sampleId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"populationId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"attribute": {
"type": "string",
"minLength": 1,
"description": "The control attribute/objective tested."
},
"procedure": {
"type": "string"
},
"results": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"reference": {
"type": "string",
"minLength": 1
},
"outcome": {
"type": "string",
"enum": [
"pass",
"fail",
"na"
]
},
"evidenceRef": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"reference",
"outcome"
]
}
},
"conclusion": {
"type": "string",
"enum": [
"effective",
"effective-with-exceptions",
"deficiency",
"not-concluded"
]
},
"preparedBy": {
"type": "string"
}
},
"required": [
"engagementId",
"controlId",
"sampleId",
"attribute",
"results"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"testResult": {}
},
"required": [
"testResult"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_test_results(engagementId)
List the test results recorded for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"testResults": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"testResults"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪note_exception(engagementId, testResultId, reference, description, rootCause, ...)
Record an exception identified during testing, with root cause, impact and any compensating control.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"testResultId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"reference": {
"type": "string",
"minLength": 1,
"description": "The sample item reference the exception relates to."
},
"description": {
"type": "string",
"minLength": 1
},
"rootCause": {
"type": "string"
},
"impact": {
"type": "string"
},
"compensatingControl": {
"type": "string"
}
},
"required": [
"engagementId",
"testResultId",
"reference",
"description"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"exception": {}
},
"required": [
"exception"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_exceptions(engagementId)
List the exceptions recorded for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"exceptions": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"exceptions"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪assemble_workpaper(engagementId, controlId, testResultId, title)
Assemble a Markdown control-testing workpaper from the control, its risks, population, sample, test results and exceptions.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"controlId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"testResultId": {
"description": "Restrict to a single test result.",
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"title": {
"type": "string",
"minLength": 1
}
},
"required": [
"engagementId",
"controlId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"workpaper": {}
},
"required": [
"workpaper"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_workpapers(engagementId)
List the workpapers assembled for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"workpapers": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"workpapers"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_workpaper(engagementId, workpaperId)
Return a workpaper including its rendered Markdown.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"workpaperId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId",
"workpaperId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"workpaper": {
"anyOf": [
{},
{
"type": "null"
}
]
}
},
"required": [
"found",
"workpaper"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡add_review_note(engagementId, workpaperId, text, author)
Add a reviewer note to a workpaper.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"workpaperId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"text": {
"type": "string",
"minLength": 1
},
"author": {
"type": "string",
"minLength": 1
}
},
"required": [
"engagementId",
"workpaperId",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"workpaper": {},
"note": {}
},
"required": [
"workpaper",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪resolve_review_note(engagementId, workpaperId, noteId, resolvedBy)
Mark a review note resolved on a workpaper.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"workpaperId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"noteId": {
"type": "string",
"minLength": 1
},
"resolvedBy": {
"type": "string",
"minLength": 1
}
},
"required": [
"engagementId",
"workpaperId",
"noteId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"workpaper": {},
"note": {}
},
"required": [
"workpaper",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪sign_off(engagementId, workpaperId, role, actor, comment)
Record a preparer or reviewer sign-off. Warns (does not block) if the same person prepared and reviewed.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"workpaperId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"role": {
"type": "string",
"enum": [
"preparer",
"reviewer"
]
},
"actor": {
"type": "string",
"minLength": 1
},
"comment": {
"type": "string"
}
},
"required": [
"engagementId",
"workpaperId",
"role"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"workpaper": {},
"warning": {
"type": "string"
}
},
"required": [
"workpaper"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_activity_log(engagementId)
Return the append-only activity log for an engagement, plus a Markdown rendering.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"markdown": {
"type": "string"
},
"events": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"markdown",
"events"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪classify_deficiency(engagementId, title, description, likelihood, magnitude, ...)
Classify a control deficiency as deficiency / significant deficiency / material weakness from likelihood × magnitude (escalates for a pervasive control).
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string",
"minLength": 1
},
"likelihood": {
"type": "string",
"enum": [
"remote",
"more-than-remote",
"reasonably-possible"
]
},
"magnitude": {
"type": "string",
"enum": [
"inconsequential",
"more-than-inconsequential",
"material"
]
},
"pervasive": {
"default": false,
"type": "boolean"
},
"controlId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"testResultId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"exceptionIds": {
"default": [],
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"compensatingControl": {
"type": "string"
},
"remediation": {
"type": "object",
"properties": {
"rootCause": {
"type": "string"
},
"actions": {
"type": "string"
},
"owner": {
"type": "string"
},
"dueDate": {
"type": "string"
},
"retestPlan": {
"type": "string"
}
}
}
},
"required": [
"engagementId",
"title",
"description",
"likelihood",
"magnitude"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"deficiency": {}
},
"required": [
"deficiency"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_deficiencies(engagementId)
List the deficiencies recorded for an engagement.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"deficiencies": {
"type": "array",
"items": {}
}
},
"required": [
"count",
"deficiencies"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪aggregate_deficiencies(engagementId, deficiencyIds)
Group related deficiencies by control, flag combinations that may aggregate, and report the overall severity.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"deficiencyIds": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"aggregation": {}
},
"required": [
"aggregation"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪assess_principle(engagementId, number)
Report data-driven coverage indicators for one COSO principle (controls, risks and deficiencies mapped to it).
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"number": {
"type": "integer",
"minimum": 1,
"maximum": 17
}
},
"required": [
"engagementId",
"number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"assessment": {
"anyOf": [
{},
{
"type": "null"
}
]
}
},
"required": [
"found",
"assessment"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪assess_component(engagementId, id)
Report coverage indicators for one COSO component, aggregating its principles.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
},
"id": {
"type": "string",
"enum": [
"control-environment",
"risk-assessment",
"control-activities",
"information-communication",
"monitoring-activities"
]
}
},
"required": [
"engagementId",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"found": {
"type": "boolean"
},
"assessment": {
"anyOf": [
{},
{
"type": "null"
}
]
}
},
"required": [
"found",
"assessment"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢framework_integration_check(engagementId)
Check that all five COSO components have some recorded coverage and that principles are addressed.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"integration": {},
"components": {
"type": "array",
"items": {}
}
},
"required": [
"integration",
"components"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}⚪generate_report(engagementId)
Generate a Markdown internal-control review report: scope, risks, controls, testing, workpapers, deficiencies and COSO coverage.
Eingabe-Schema
{
"type": "object",
"properties": {
"engagementId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$"
}
},
"required": [
"engagementId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"markdown": {
"type": "string"
},
"counts": {}
},
"required": [
"markdown",
"counts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Nachweis