Inspiration

Reporting a household repair should be simple, but tenants may struggle to explain problems, understand their urgency, or know whether an issue has already been reported.

HomeFix was inspired by the idea of making household maintenance reporting more accessible, efficient, and conversational.

Instead of completing lengthy forms or creating duplicate requests, tenants should be able to describe problems naturally and receive meaningful assistance.

What it does

HomeFix is an Alexa+-ready home repair reporting assistant built using the Model Context Protocol (MCP).

HomeFix exposes five MCP tools that allow compatible AI assistants to interact with a repair management system:

  • find_repairs — Search existing repair requests and identify possible duplicates.
  • get_repair_status — Retrieve the status and details of an existing repair.
  • report_repair — Create new repair requests with automatically generated reference numbers.
  • change_repair_priority — Update repair urgency after explicit confirmation.
  • add_repair_update — Add information to an existing repair while preserving its history.

For example, when a tenant reports water leaking beneath a kitchen sink, HomeFix can search for an existing repair, identify a possible duplicate, and help update the existing request rather than creating an unnecessary new one.

Confirmation safeguards help prevent unintended modifications, while property-level checks restrict access to repair records associated with other properties.

How we built it

HomeFix was developed using Python, Pydantic, FastMCP, and the MCP Python SDK.

The backend uses Pydantic models to validate repair information and provides two configurable storage backends:

  • JSON storage for local development and testing.
  • Amazon DynamoDB for persistent cloud-based repair records.

The application uses a storage abstraction that allows the backend to switch between JSON and DynamoDB through environment configuration.

The MCP server uses Streamable HTTP and supports MCP protocol version 2025-11-25.

We implemented five MCP tools covering repair searches, status retrieval, new requests, priority changes, and repair updates.

To improve reliability and safety, we added:

  • Duplicate detection using text normalisation.
  • Confirmation requirements for record modifications.
  • Property-level filtering.
  • Input validation.
  • Repair-history preservation.
  • Automated testing using pytest.

The application was also containerised using Docker.

For AWS integration, we implemented a DynamoDB storage backend using Boto3, the AWS SDK for Python. We successfully tested repair operations against DynamoDB using synthetic demonstration records.

We also explored AWS deployment using the Agent Toolkit for AWS and Amazon Bedrock AgentCore.

The latest reported test run completed with 26 passing automated tests. Local MCP client-server communication was verified successfully.

Challenges we ran into

One of the main challenges was converting ordinary Python application functions into tools accessible through MCP.

We needed to understand MCP communication, tool definitions, Streamable HTTP, and client-server interactions.

Another challenge involved detecting duplicate repair requests even when tenants used different wording, such as "dripping" and "leaking."

We also focused on preventing unintended changes by introducing explicit confirmation checks and property-level access validation.

During development, we encountered Python import issues, testing failures, Docker container conflicts, local port conflicts, and AWS configuration challenges.

Adding a second storage backend introduced further considerations around consistent repair operations, data persistence, and maintaining the same application behaviour across JSON and DynamoDB.

These challenges helped us improve the application's structure, testing strategy, and reliability.

Accomplishments that we're proud of

  • Built a functional MCP-based repair reporting backend from scratch.
  • Implemented five working MCP tools.
  • Added duplicate detection and confirmation safeguards.
  • Introduced property-level access checks.
  • Implemented both JSON and Amazon DynamoDB storage backends.
  • Verified DynamoDB operations using synthetic repair records.
  • Achieved 26 passing automated tests in the latest reported test run.
  • Successfully tested local MCP communication over Streamable HTTP.
  • Containerised the application using Docker.
  • Published the source code on GitHub under the MIT License.

What we learned

HomeFix strengthened our understanding of the Model Context Protocol, tool-based application architecture, and how AI assistants can interact with external systems.

We gained practical experience with Python application design, Pydantic data validation, Streamable HTTP, pytest, Docker, Boto3, and Amazon DynamoDB.

We also learned how important confirmation, validation, and property-level checks are when an AI assistant can perform actions rather than simply provide information.

The project highlighted the differences between building a working local prototype, integrating cloud persistence, and preparing an application for production deployment.

What's next for HomeFix

Our next goals are to:

  • Deploy and validate the MCP server on Amazon Bedrock AgentCore.
  • Integrate HomeFix with a production Alexa+ experience.
  • Add authenticated tenant identity and production-grade authorisation.
  • Connect HomeFix to existing property management systems.
  • Introduce automatic maintenance-team notifications.
  • Improve duplicate detection and repair-priority recommendations.
  • Expand the conversational user experience.

HomeFix currently operates as a functional MCP prototype using synthetic demonstration data. It is not intended for production tenant information without further security improvements.

Source Code

GitHub: https://github.com/deep19901985/homefix-alexa-mcp

Built With

Share this project:

Updates

Submission history