coso-mcp
Open COSO internal-control review MCP: scope, risk, controls, sampling, testing, workpapers.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (10)
- LOWen get_server_info
- LOWen get_principle
- LOWen get_component
- LOWen get_engagement
- LOWen register_risk
- LOWen register_control
- LOWen compute_sample_size
- LOWen classify_deficiency
- LOWen assess_principle
- LOWen assess_component
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"coso-mcp": {
"command": "npx",
"args": [
"@simonmak-ascent/coso-mcp"
]
}
}
}Paquetes ejecutables
0.1.1stdioPuntos de conexión remotos
https://internal-control.ascent-partners.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (39)
🟢get_server_info
Return the server identity, the COSO framework it covers, and the mandatory disclaimer.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"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).
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {
"number": {
"type": "integer",
"minimum": 1,
"maximum": 17
},
"id": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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).
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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).
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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).
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"type": "object",
"properties": {
"markdown": {
"type": "string"
},
"counts": {}
},
"required": [
"markdown",
"counts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Comunidad
Evidencia