How methos237/dealer-portal-ai-assistant works
The product is a multi-tenant RV dealer portal with an embedded, citation-producing assistant. Dealers sign in, browse units and documents, file warranty claims or parts orders, and view reports; assistant answers stream from retrieved documents and live portal tools, while draft writes require confirmation in the browser. The graph includes ingestion and the separate Microsoft 365 MCP connector as documented capabilities. Several web and API subsystems are represented by their tree paths because their implementation excerpts were not provided; edges rely on the README or indexed references where noted.
Main entry points: (portal) Portal web app · PortalEndpoints.cs Portal endpoints · chat.py Assistant API · agent.py Agent and tool loop
Components 28
Dealer portal
- Portal web app
web/src/app/(portal) - Units, claims, orders
web/src/app/(portal) - Offline claim drafts
web/src/components/DraftReplayer.tsx - Reports UI
web/src/app/(portal)/reports/page.tsx - Assistant panel
web/src/components/AssistantPanel.tsx
Portal API
- Portal endpoints
api/src/DealerPortal.Api/Endpoints/PortalEndpoints.cs - Identity and tenancy
api/src/DealerPortal.Api/Auth/CurrentUser.cs - Portal database
api/src/DealerPortal.Api/Data/PortalDbContext.cs - Report service
api/src/DealerPortal.Api/Reports/PowerBiClient.cs - Portal MCP tools
api/src/DealerPortal.Api/Mcp/PortalTools.cs
AI assistant
- Assistant API
assistant/app/chat.py - Caller validation
assistant/app/auth.py - Agent and tool loop
assistant/app/agent.py - Hybrid retrieval
assistant/rag/retrieval.py - RAG document index
assistant/rag/retrieval.py
Knowledge ingestion
- Document ingestion
assistant/rag/ingest.py - Ingestion trigger
functions/function_app.py
External integrations
- M365 MCP server
mcp-m365/src/server.ts - SharePoint connector
mcp-m365/src/graph.ts - Fabric query tools
mcp-m365/src/powerbi.ts - Microsoft Entra ID
- Claude model
- PostgreSQL with pgvector
- SharePoint libraries
- Fabric semantic model
Other components
- Dealer user
- Browser client
- Claude Desktop / Code
Connections 31
- Dealer user → Portal web app: uses
README.md - Portal web app → Microsoft Entra ID: signs in
README.md - Portal web app → Units, claims, orders: presents
README.md - Portal web app → Portal endpoints: calls with token
README.md - Portal web app → Assistant API: streams chat
README.md - Portal web app → Offline claim drafts: stores offline
README.md - Offline claim drafts → Portal endpoints: replays writes
README.md - Portal web app → Reports UI: shows reports
README.md - Portal endpoints → Identity and tenancy: uses caller context
api/src/DealerPortal.Api/Endpoints/PortalEndpoints.cs - Portal endpoints → Portal database: reads and writes
api/src/DealerPortal.Api/Endpoints/PortalEndpoints.cs - Identity and tenancy → Portal database: scopes queries
api/src/DealerPortal.Api/Data/PortalDbContext.cs - Reports UI → Report service: requests summary
README.md - Report service → Fabric semantic model: queries DAX
api/src/DealerPortal.Api/Reports/PowerBiClient.cs - Portal endpoints → Portal MCP tools: exposes tools
api/src/DealerPortal.Api/Mcp/PortalTools.cs - Claude Desktop / Code → Portal MCP tools: calls tools
README.md - Assistant API → Caller validation: validates caller
assistant/app/chat.py - Assistant API → Agent and tool loop: runs turn
assistant/app/chat.py - Agent and tool loop → Hybrid retrieval: retrieves chunks
assistant/app/agent.py - Hybrid retrieval → RAG document index: queries hybrid index
assistant/rag/retrieval.py - Assistant API → PostgreSQL with pgvector: checks index metadata
- Agent and tool loop → Claude model: streams model calls
README.md - Agent and tool loop → Portal MCP tools: calls with user token
assistant/app/agent.py - Caller validation → Portal endpoints: resolves dealer
assistant/app/auth.py - Ingestion trigger → Document ingestion: triggers indexing
functions/function_app.py - Document ingestion → RAG document index: embeds and upserts
assistant/rag/ingest.py - Ingestion trigger → SharePoint libraries: fetches document changes
README.md - Claude Desktop / Code → M365 MCP server: connects over MCP
README.md - M365 MCP server → SharePoint connector: registers document tools
mcp-m365/src/server.ts - SharePoint connector → SharePoint libraries: browses and reads
README.md - M365 MCP server → Fabric query tools: registers query tool
mcp-m365/src/server.ts - Fabric query tools → Fabric semantic model: executes DAX
README.md