Open COSO internal-control review MCP: scope, risk, controls, sampling, testing, workpapers.
One address for any MCP client. No sign-in needed on this server.
23 read8 act8 other
Grouped by tool name. At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
An open Model Context Protocol server for internal-control reviews under the COSO Internal Control—Integrated Framework (ICIF-2013). It covers the full review lifecycle — scope → risk assessment → control register → population → sampling → testing → workpapers → review sign-off → deficiency evaluation → report — grounded in the framework's 5 components, 17 principles and points of focus.
npx @simonmak-ascent/coso-mcp).Not audit or legal advice. This server assists with internal-control review methodology. All workpapers and assessments must be reviewed by qualified professionals before use in audit documentation.
Existing MCP servers either expose a vendor's GRC records (read-mostly,
proprietary, product-shaped) or cover ISO 27001 / security controls. None runs
a traceable COSO review. coso-mcp is the first COSO/ICFR-native,
write-capable, open MCP for the whole lifecycle.
| Dimension | coso-mcp | Vendor GRC MCPs (Workiva, Vanta, Drata, Optro, OpenPages, LogicGate…) | Community MCPs (iso27001-mcp, unidoc/isms, mcp-server-scf…) | AI skills (sox-testing / audit-support) |
|---|---|---|---|---|
| COSO ICIF-2013 native (5 components / 17 principles / points of focus) | ✅ core engine | ❌ product objects | ❌ ISO/SCF-shaped | ⚠️ text only |
| Full lifecycle to signed workpaper | ✅ | ❌ retrieval; Workiva GRC tools are read-only | ❌ planning/findings at best | ⚠️ templates, not executable |
| Write/stateful workpapers + preparer/reviewer sign-off + audit trail | ✅ | ❌ mostly read | ❌ | ❌ |
| Framework effectiveness (principle/component present & functioning) | ✅ | ❌ | ❌ | ❌ |
| Deterministic, reproducible computation (sample-size tables, seeded selection) | ✅ | partial | ❌ | ❌ (freeform) |
| Open source + open access (MIT, public endpoint, no account) | ✅ | ❌ paid platform | ⚠️ some OSS | ⚠️ not a server |
Moat: it is the lifecycle layer, not the data layer — it can sit on top of Workiva/Vanta/Drata rather than compete for their data; its sampling and deficiency math are computed, not improvised; and openness gives zero-friction distribution no gated vendor can match.
| Tool | Kind | Purpose |
|---|---|---|
get_server_info | read | Server identity, framework coverage, disclaimer. |
list_components | read | The five COSO components. |
list_principles | read | The 17 principles (optionally filtered by component). |
get_principle | read | A principle by number or slug, with paraphrased points of focus. |
get_component | read | A component by id, with its principles. |
list_objective_categories | read | Operations / reporting / compliance. |
list_assertions | read | The CEAVOP assertions used to frame control objectives. |
create_engagement | write | Create a review engagement. |
get_engagement | read | Get an engagement by id. |
list_engagements | read | List engagements. |
add_scope_item | write | Add a significant account/process to scope. |
list_scope_items | read | List scope items. |
register_risk | write | Register a risk to objectives (likelihood, assertions, principles, fraud). |
list_risks | read | List registered risks. |
register_control | write | Register a control (type, frequency, linked risks, assertions). |
list_controls | read | List registered controls. |
get_audit_log | read | Append-only audit events for an engagement. |
compute_sample_size | read | Recommended sample size from frequency × risk, with rationale. |
create_population | write | Register a population (item list or declared size, bounded). |
list_populations | read | List populations. |
select_sample | write | Seeded, reproducible sample selection (random/systematic/targeted/haphazard). |
record_test_result | write | Record attribute-level outcomes (pass/fail/na) and a conclusion. |
list_test_results | read | List test results. |
note_exception | write | Record an exception with root cause and impact. |
list_exceptions | read | List exceptions. |
assemble_workpaper | write | Assemble a Markdown control-testing workpaper. |
list_workpapers | read | List workpapers. |
get_workpaper | read | Get a workpaper with its Markdown. |
add_review_note | write | Add a reviewer note. |
resolve_review_note | write | Resolve a reviewer note. |
sign_off | write | Preparer/reviewer sign-off (warns on same-person independence). |
get_activity_log | read | Append-only activity log for an engagement. |
classify_deficiency | write | Classify a deficiency (deficiency / significant / material weakness). |
list_deficiencies | read | List deficiencies. |
aggregate_deficiencies | read | Group and flag deficiencies that may aggregate. |
assess_principle | read | Coverage indicators for one COSO principle. |
assess_component | read | Coverage indicators for one COSO component. |
framework_integration_check | read | Check all five components have coverage. |
generate_report | read | Generate the Markdown review report. |
Resources: coso://framework/icif-2013 (framework reference),
coso://engagement/{id} (engagement bundle: scope, risks, controls).
Prompts: scope-review, assess-risk, build-control-matrix,
draft-test-workpaper, evaluate-deficiencies.
npx -y @simonmak-ascent/coso-mcp
Claude Desktop / generic MCP client config:
{
"mcpServers": {
"coso": {
"command": "npx",
"args": ["-y", "@simonmak-ascent/coso-mcp"]
}
}
}
https://internal-control.ascent-partners.com/mcp
The hosted endpoint is open. Write operations run in an ephemeral, isolated, rate-limited per-session sandbox and are not persisted.
Compute runs on a box, never locally: cs run "<cmd>".
pnpm install
pnpm typecheck
pnpm test
pnpm test:coverage
pnpm build # tsc
See SECURITY.md. Report vulnerabilities privately — do not open a public issue.
See CONTRIBUTING.md and the Code of Conduct.
MIT © Simon Mak / Ascent Partners Group Limited.