Inspiration

I build ERP software for a living: billing, inventory, HR. The most common thing managers do in an ERP is ask simple questions ("what's overdue?", "what's running low?") and then click through many screens to find the answer. A voice assistant is a natural fit, but it is risky if the assistant can change business data on its own. I wanted to build the safe version.

What it does

ERP Voice Agent is an MCP server that lets a voice assistant like Alexa+ talk to a business ERP (invoices, inventory, purchase orders, HR leave).

  • Voice-first answers: every tool returns a short spoken summary plus structured data for the screen, so the assistant says little and shows the details.
  • Conversation memory: follow-ups like "and who are the top 3 customers for that?" work without repeating context.
  • Ask-then-confirm: restocking and leave approval work this way. The planner can only create a draft, and nothing is confirmed until the user says "confirm it". Confirming twice is handled safely. (The direct write tools, such as create_invoice, change data immediately in this version.)
  • Supply-chain planner: "restock from the fastest supplier" is handled by an Amazon Bedrock model (Nova Micro) using tool calls. It reads the low-stock items and supplier lead times through ERP tools, picks the fastest supplier and drafts one purchase order. Python guardrails validate SKUs, cap quantities and allow drafts only: the model cannot confirm anything, so confirming is always a human step. The UI shows the live/mock/fallback badge and the tool calls the model made.
  • Reusable package: the adapter is extracted as django-erp-mcp, so any Django app can expose its models as MCP tools.

The Alexa+ experience is simulated with a web chat (browser speech recognition and speech synthesis), which the hackathon rules allow. The MCP server itself is real: Streamable HTTP, spec version 2025-11-25, 25+ tools.

How I built it

Python and Django for the ERP domain (sample data only), the official MCP Python SDK for the server, a Starlette/Uvicorn app for transport, boto3 with the Amazon Bedrock Converse API for the planner, and a single-page web chat as the Alexa+ simulator. I built it with AI-assisted development (Antigravity) driven by my own prompts, and tested everything by hand. 85 automated tests cover the tools, confirmation flow, chat routing and planner modes.

Challenges

  • Keeping the AI from changing business data without approval, which led to the draft-and-confirm design.
  • Being honest about what is simulated and what is real, so the UI labels the planner mode (live, mock or fallback).
  • Making a fresh clone install and run cleanly: I tested from a clean virtual environment and fixed dependency problems.

What I learned

Voice changes API design: responses need a short spoken form and a structured form. Safety belongs in the tool layer, not in the model.

What's next

Real Alexa+ device integration, confirmation or role-based permissions for the direct write tools, and Tamil and Hindi voice support.

Built With

Share this project:

Updates

Submission history