Engineering rules & the mock Business Central layer
Rules are data (ER-01) — edit server/rules/decision-tables.json, not code. Business Central is mocked behind the exact MCP tool catalogue in the SRS (section 7); a standalone server exposing the same tools over the real MCP protocol lives at mcp-server/index.js.
Decision tables (ER-01..ER-08)
MCP call log (BC-09 audit)
| Tool | Actor | Source | Latency | Result |
|---|
What's real vs. what's mocked in this prototype
Real
- Tender lifecycle, BoM versioning, pricing engine, approval workflow
- Data-driven rules engine (18 house rules from the sample tenders)
- Fuzzy order-code resolver (token overlap + rating match)
- XLSX offer generation reproducing SEGA.M's layout, with DRAFT watermark
- Document extraction calling the real Claude API when a key is configured
- Extraction → panel generator bridge — accepted incomers pre-fill the rules-engine form, closing the SLD-to-priced-BoM loop
- ✨ MCP server exposing the full tender workflow as tools (not just Business Central reads), in two forms: a stdio process for Claude Desktop/Code on this machine, and an online HTTP endpoint at
/mcp authenticated per-user by personal API key. Either way it drives the same running app over its own API — a tool call shows up live in the browser.
- Login, sessions, personal API keys, and per-role permissions (Estimator/Studies/Sales/Management/Finance/Admin/Viewer)
- Bilingual English/Arabic UI shell with RTL layout
Mocked / deferred
- Business Central itself — seeded illustrative item/price/FX data
- Entra ID SSO — local email/password accounts stand in for it (see Users)
- Azure hosting, Key Vault, Microsoft Graph mail/Teams
- DWG/DXF parsing, full equivalence/alternatives library, win-advisor ML
- Arabic translation of BoM/rule/catalogue content — the app chrome is bilingual, engineering data stays English