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

Codeset improves coding agents with repo-specific context from git history
Codeset generates static files from git history that provide context like past bugs, root causes, and co-change relationships. Testing showed 5.3pp improvement on codeset-gym-python and 2pp on SWE-Bench Pro with OpenAI Codex.

Mneme: A Free, Local-First Claude Chat Client with Persistent Memory
Mneme is a free, open-source, local-first Claude chat client with tiered memory, entity tracking, daily summaries, and support for Sonnet 4.5 via the Anthropic API.

Warp Terminal Goes Open Source with Agentic Dev Environment
Warp is now open-source, rebranding as an agentic development environment with a built-in coding agent and support for bringing your own CLI agents like Claude Code, Codex, and Gemini CLI.

Offline-web-search: A Local Google Search Alternative for AI Agents
A developer built offline-web-search to address poor offline search capabilities in AI agents, creating a drop-in replacement that mimics Claude's web tools with BM25 ranking, SQLite FTS5 indexing, and support for ZIM archives and custom crawlers.