Horizon Advisor
A Microsoft 365 Copilot declarative agent backed by a protected, remote MCP server, with an Advisor Workspace MCP Apps widget rendered inside Copilot. It gives insurance professionals cited, decision-grade advisory for Swiss private and SME insurance — and refuses, with an explicit handoff, when it cannot ground an answer.
Advisory facts come from a single curated corpus (data/advisor-corpus/ in the repo) — there is no
hidden knowledge tier. Run locally, the backend grounds on that manifest-backed corpus directly, with
no external services (the open-source default). When hosted, the curated docs are published to a
SharePoint corpus library, which Foundry IQ indexes into Azure AI Search and cites from, with
the in-repo corpus as a fallback.
The main ideas
- Protected MCP backend + Advisor Workspace widget. The backend is an OAuth-protected remote MCP
server (FastMCP) that exposes seven tools; the Advisor Workspace is an MCP Apps widget bound to
ask_horizon_advisorand rendered inside Copilot. The text answer still works if the widget cannot render. - Self-contained corpus. Every fact comes from one curated, manifest-backed corpus
(
data/advisor-corpus/) — no hidden knowledge tier. Run locally it grounds on that corpus directly (no external services); hosted, its docs are published to a SharePoint corpus library that Foundry IQ indexes into Azure AI Search, with the in-repo corpus as a fallback. - Cited-or-refuse (fail-closed). No answer is presented as grounded without a citation; unsupported or out-of-scope questions get an explicit refusal or escalation (enforced in code).
- Clean data boundary. The backend never reads your personal Microsoft 365 (mailbox, files,
chats) — Copilot's Work IQ surfaces it as a plain-text
case_contextthat can never become a citation. - Delegated, not impersonated. Every Microsoft 365 action — querying the curated corpus for grounding (ACL-trimmed) and writing back (notes, email, Teams) — runs through delegated Microsoft Graph On-Behalf-Of, as the signed-in advisor.
Not in scope
No real customer data or pricing, no binding legal/tax/financial advice, and no Swiss mandatory/basic health insurance recommendations.
Next
See Process flow for how a request works and the seven MCP tools, or Getting Started to run it.