Local-first AI tax preparer with encrypted PII built on MCP

A developer has built a local-first AI tax preparer as an extension for Crow, an open-source platform that exposes tools via the Model Context Protocol (MCP). The system encrypts all personally identifiable information (PII) including Social Security numbers and names with AES-256-GCM at extraction time.
How it works
The extension works with any MCP-compatible client: Claude, ChatGPT, Gemini, local models through Ollama, or anything else that speaks MCP. The AI assistant interacts with tax data through MCP tools but never receives plaintext SSNs. When the AI needs to fill an SSN field, it sends a "fill SSN" command, and the encrypted vault resolves it.
Privacy and local-first architecture
The entire system is designed to keep sensitive data on your machine. You can run the whole thing against a local model, and your sensitive data never leaves your machine at any layer. The architecture includes:
- SQLite database for local storage
- Local PDF parsing and generation
- No external API calls for tax data
Tax calculation capabilities
The calculation engine covers:
- Form 1040
- Schedule 1
- HSA (Form 8889)
- Education credits (Form 8863)
- Self-employment (Schedule C/SE)
- Capital gains (Schedule D)
Additional components
The developer also built:
- A browser automation extension using stealth Chromium in Docker with VNC viewer and 18 MCP tools
- A custom skill that automates filing through IRS Free File Fillable Forms (not in the public repo due to IRS TOS concerns, but documented in the blog post)
Model requirements
The tax engine doesn't require a powerful model since the MCP tools handle all the math. The model just needs to understand "upload these documents and prepare my return" and call the right tools in sequence. A smaller local model that supports tool calling should work fine for the orchestration layer.
Open source availability
The project is open source and available on GitHub, allowing developers to extend it for their own needs.
📖 Read the full source: r/LocalLLaMA
👀 See Also

New Tool Injects Instructions into Claude Code Based on Context Usage
A developer created a tool that monitors context usage and injects custom instructions to prevent mid-task compaction disasters.

MCP Server: Comparing Local and Cloud LLMs with Debate Feature
The MCP server enables developers to query local models via Ollama alongside various cloud LLMs, offering features like side-by-side comparison and a structured debate function.

Claude Code Plan Mode Reduces Redo Rate from 40% to Near Zero
A developer tracked 30+ coding sessions with Claude Code and found that skipping Plan Mode resulted in redoing tasks from scratch 40% of the time. With Plan Mode, the redo rate dropped to basically zero, with one feature taking 17 minutes total versus 35+ minutes without planning.

RouteLLM Setup for Cost-Effective AI Task Routing
A Reddit user shares a Docker Compose configuration that combines Ollama's local Qwen3.5:4b model with GitHub Copilot via OpenWire, using RouteLLM to route complex tasks to GPT-4o while handling simpler tasks locally.