Inspiration

When a renter has a dispute over a broken heater, a leak, or a withheld deposit, the outcome often comes down to who can prove what happened and when. Most tenants keep that proof in scattered texts, photos and memory, and a landlord can easily call it unreliable. We wanted a way to record evidence in the moment, just by speaking, in a form that is hard to dispute.

What it does

PaperTrail is an Alexa+ MCP server that lets a tenant log repair issues, notices and payments by voice. Each entry is timestamped and stored in an append-only, hash-chained ledger, so every record is cryptographically linked to the one before it. If anyone alters an old entry, the chain breaks and verification names the exact entry that was changed. The tenant can then export a clean, verifiable record to use in a dispute.

How we built it

  • A Django application owns the data model and business logic.
  • An MCP server built on the official MCP Python SDK exposes tools such as log_issue so Alexa+ can call them.
  • A Starlette entry point serves the /mcp endpoint and the Django app side by side.
  • The ledger is append-only with a per-household sequence, and a PostgreSQL trigger acts as a backstop that blocks updates and deletes.
  • A verify_chain routine recomputes the hashes and reports the first entry that doesn't match.
  • Automated tests cover normal logging and three tamper scenarios.

Challenges we ran into

  • An unpinned dependency jumped to a new major version of the MCP SDK and broke the server, so we pinned the version range.
  • Making tampering truly detectable, not just discouraged, meant enforcing immutability both in application code and at the database level.
  • Designing for voice means short, forgiving inputs, since people speak in fragments rather than forms.

Accomplishments that we're proud of

A working tamper-evident record where altering a single past entry is detected and pinpointed, plus a voice-first flow that takes seconds to use.

What we learned

How MCP tools are structured and discovered, how to combine Django and Starlette under one lifespan, and how much a database-level guarantee strengthens a trust-based product.

What's next

Photo and document attachments, shareable read-only links for landlords or housing agencies, and support for more languages and tenancy laws.

Share this project:

Updates

Submission history