InvoicePilot AI: Smarter Invoice Automation with TEv1 and MCP
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle What I Built I built a local invoice assistant for freelancers who lose hours chasing late payments. You upload a photo
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle
What I Built
I built a local invoice assistant for freelancers who lose hours chasing late payments. You upload a photo or screenshot of an invoice, a vision model running on your own laptop reads the client, amount, and due dates, and after you confirm the fields it saves them to a local database. You can then ask plain questions like βwhich invoices are overdue?β or βhow much does this client owe me?β, and it drafts a polite reminder email with the exact amount and days overdue. Freelancers would pay for it because it turns an awkward, tedious chore into one click, without ever sending their clientsβ details to a cloud service.
Demo
Code
InvoicePilot AI is split into two repositories to keep the AI agent and invoice tools separate.
1. MCP Client β The AI Agent
This repository contains the agent logic, TEv1 tool-selection flow, and LLM integration. It selects the appropriate invoice tool and handles argument generation and tool execution.
GitHub: MCP Client
2. MCP Server β Invoice Tools
This repository exposes invoice operations as MCP tools, allowing the client to interact with invoice data through a standardized interface.
GitHub: MCP Server
How I Built It
I built this project using TEv1, Ollama, open-weight language models, and the Model Context Protocol (MCP) to explore reliable AI agent tool selection and execution.
Tech Stack
- gemini-flash-latest (vision): Reads invoice images locally and extracts the client, amount, and dates as structured JSON.
- SQLite: Stores confirmed invoices on the user's own machine.
- TEv1: Tool selection and decision-making.
- Ollama: Run open-weight models locally.
- Qwen 2.5 3B: Local language model experimentation.
- MCP: Standardized communication between the AI agent and its tools.
- Python: Agent orchestration and tool execution.
The project explores whether combining a lightweight decision model with an LLM can improve tool-calling reliability while reducing input-token usage.
By running the decision model locally, the project avoids additional API costs for tool selection while keeping the main LLM responsible for generating tool arguments.
Why Does Open Innovation Matter?
Open innovation lets me build and experiment with AI agents without depending entirely on closed, proprietary APIs. Using Ollama and open-weight models, I can run AI locally and test different approaches without per-token costs for tool selection. TEv1 helps select the right invoice tool, while MCP connects the client and server. This project shows how open models and protocols can make AI agents more reliable, accessible, and customizable.
My First User
My first user is me. I haven't put it in front of a freelancer yet, so I can't claim a paying customer, but I did pay for this project in a different currency: time and curiosity. Building it taught me things I couldn't pick up from tutorials alone: how an MCP server and client actually talk to each other, why a small router model like tev1 can pick tools better than a big model guessing, how a local vision model reads a messy invoice, and how much a real database query beats asking an LLM to add up numbers.
Using it on my own sample invoices also showed me what a real user would ask for next: PDF support, editing a saved invoice when the model misreads a date, and marking invoices as paid. That's my roadmap, and my next step is to hand it to a freelancer friend and see if they'd pay for it.
Prize Categories
Featured Categories
*Best Use of Gemma
Partner Categories
*Best Use of a .tech Domain
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β full credit and traffic to the original publisher.


