Inspiration
Household bills arrive as PDFs, photos and emails. Asking "when is the electricity due?" should not need a spreadsheet. Alexa+ is where people already ask quick questions at home, so the answer should live there.
What it does
Paperwork Pal is a self-hosted MCP server for Alexa+. You give it the text of a bill or receipt; it extracts the vendor, amount, currency and due date and stores the record. Then you can ask:
- "What bills are due this week?" (
list_due) - "How much is the electricity bill?" (
get_document) - "I paid it, mark it as paid." (
mark_paid) - "How much did I spend this month?" (
monthly_total)
If a field is not written in the document, it comes back null. The server never guesses a vendor, an amount or a due date. In the demo, a pharmacy receipt has no due date, and Paperwork Pal says so instead of inventing one.
How we built it
- Python + the official MCP SDK (FastMCP), MCP spec 2025-11-25, Streamable HTTP transport at
/mcp - Five tools:
add_document,list_due,get_document,mark_paid,monthly_total - Field extraction is delegated to a document-extraction HTTP API that returns null for missing fields
- SQLite for storage, so due-this-week and monthly totals are plain SQL
- Deployed on my own server behind nginx + Let's Encrypt; 7 pytest tests; the live endpoint is open to any MCP client
Challenges we ran into
Newer FastMCP rejects unknown Host headers (DNS-rebinding protection), so the reverse proxy has to forward a trusted Host. Spoken answers also need to be short, so every tool returns compact JSON that a voice assistant can summarise in one sentence.
Accomplishments that we're proud of
Every call in the demo video is a real MCP call to the live server, including the "no due date" case.
What we learned
MCP keeps the assistant side thin: Alexa+ only needs the tool descriptions, and all of the paperwork logic stays on a server the user controls.
What's next
Accept PDFs and photos directly (OCR before extraction), reminders the day before a bill is due, and per-household accounts.
Try it
MCP endpoint: https://paperwork.157-173-122-86.sslip.io/mcp (connect with MCP Inspector, transport "Streamable HTTP"). The demo video uses an MCP client standing in for Alexa+; the server and the calls are real.
Log in or sign up for Devpost to join the conversation.