Command Palette

Search for a command to run...

UnylyUnyly
Browse all

TaxAssist

FreeNot checked

Autonomous, security-first Indian tax-filing agent -> Gemini + Google Cloud Agent Builder + the MongoDB MCP server. Reads your documents from Drive, confirms fi

GitHubEmbed

About

Autonomous, security-first Indian tax-filing agent -> Gemini + Google Cloud Agent Builder + the MongoDB MCP server. Reads your documents from Drive, confirms figures with you over email, and computes ITR-1/ITR-2 deterministically.

README

An autonomous, multi-user Indian Income Tax filing assistant (ITR-1 & ITR-2) powered by Gemini on Google Cloud Agent Builder, with MongoDB (via the official MongoDB MCP server) as the data layer.

The agent reads a taxpayer's documents from Google Drive, extracts the figures with Gemini vision OCR, asks the user to confirm over email (human-in-the-loop), computes tax deterministically from official slab rates, writes the results back to Google Sheets, and exports a portal-ready ITR JSON (validated against the official Income Tax Department schema) — all under a strict, security-first architecture where the AI is treated as untrusted and can never tamper with tax data or leak personal information.

Architecture details: see SYSTEM_ARCHITECTURE.md.

Links

Team

  • Your Name — role
  • Teammate — role

Try it live (no sign-in)

On the login screen, click “Try the live demo — no sign-in.” It starts an isolated demo tenant and runs the real agent — Drive → figures → deterministic compute → Google Sheet → Calendar reminder — on a sandbox Google Workspace, so judges experience the full integration without a Google consent screen.

How it works: the visitor is signed in with the app’s own session (no Google OAuth). A demo user holds no per-user token, so every Google call falls back to the team’s pre-authorized token.json (the sandbox account). Each visitor is a separate tenant; the email approval gate is auto-approved in demo mode (no reply inbox).

To enable it on a deployment, set DEMO_MODE=1 (+ optional DEMO_INBOX_EMAIL for the sandbox Gmail, DEMO_USER_DOMAIN) and mount the sandbox account’s token.json via GOOGLE_TOKEN_FILE. Share the sandbox Drive/Sheet publicly (view) so the in-app “Open results sheet / Drive folder” links work for anyone.


What it does

  • Drive → OCR: detects documents (Form 16, etc.), converts to PDF, extracts figures with Gemini 2.5-flash vision (handles dense tables and scans).
  • Human-in-the-loop over email: emails the user to confirm extracted values / approve computation; reads the replies and resumes — as durable, resumable runs.
  • Deterministic tax engine: ITR-1 & ITR-2 computed from official slab rates (no LLM in the math), old vs new regime comparison, with section 87A rebate and new-regime marginal relief. All rates live in a single source of truth (app/core/tax_rules.json) that the calculators and the agent's retrieve_tax_rules_tool both read — so they can never diverge.
  • Google Workspace: Gmail, Calendar (deadline reminders), Sheets (findings + result), Drive — per user.
  • Portal-ready ITR JSON: exports the computed return as the official Income Tax Department offline-utility JSON (ITR-1 & ITR-2), validated against the published schema (app/core/itr_json_export.py). Downloadable from the workspace once every task is verified.
  • One-click live demo: judges run the real agent on a sandbox Google Workspace with no Google sign-in (see Try it live above).
  • Multi-tenant: one account → many profiles (e.g. self + spouse), each isolated.

Scope: TaxAssist prepares a file-ready return — it extracts, verifies, computes, writes the results to your Google Sheet, and exports the official offline-utility JSON ready to upload. It does not auto-submit to the income-tax portal; the final upload + e-verification stay with you. Surcharge above ₹50L and the granular ITR-2 input schedules (per-transaction capital gains, foreign assets) are not yet itemised — the Part B totals are.

Tech stack

Layer Tech
Agent Gemini (2.0/2.5-flash) via Google ADKVertex AI Agent Engine
Data plane MongoDB Atlas via the MongoDB MCP server (partner)
Control plane PostgreSQL (users, profiles, encrypted tokens, feedback)
Queue Redis + RQ (async runs)
API FastAPI
OCR Gemini vision + pdfplumber
Export Official IT-Dept ITR JSON schema, validated via jsonschema

No competing AI or cloud services are used.

Security highlights

  • 3-way handshake gateway (HMAC identity + state-gated authorization + intent reconciliation + payload sanitization; optional signed-request mode).
  • PII vault — personal data is tokenized before the AI ever sees it; reconstructed only in the local layer for outbound writes.
  • In-process guards — the agent cannot escalate the workflow or write fabricated tax data (provenance-checked); document registration is system-only.
  • Strict email format — internal field keys / code never appear in emails (see app/core/email_format.py).
  • Tenant isolation — every data access is validated against profile ownership.

Setup

  1. Install: pip install -r requirements.txt
  2. Env: copy .env.example.env and fill it (generation commands are in the file). Minimum to boot: MONGO_URI, GOOGLE_API_KEY, AGENT_SECRET_KEY, CONTROL_ENC_KEY (+ POSTGRES_URL for the control plane; omit for SQLite dev).
  3. Google OAuth: place credentials.json at the root (or set GOOGLE_CREDENTIALS_FILE). Production uses per-user web OAuth with tokens encrypted in Postgres.
  4. MongoDB MCP server (optional locally; required for partner integration at runtime):
    export MDB_MCP_CONNECTION_STRING="$MONGO_URI"
    npx -y mongodb-mcp-server --transport http --httpPort 3000
    # then set MONGODB_MCP_URL=http://127.0.0.1:3000/mcp in .env
    

Run (local)

uvicorn app.main:app --reload                 # API + gateway
rq worker -u $REDIS_URL tax-agent             # async run worker (if REDIS_URL set)

Test

pytest app/tests -q

195 testsunit/, integration/, security/ — all MongoDB & Google calls mocked (hermetic). Includes official-schema validation of the exported ITR JSON (both forms) and a full end-to-end live-demo workflow test (login → run → export). Tool-contract gate: python scripts/check_tool_schema.py.

Deploy

  • Agent → Vertex AI Agent Engine: python -m app.orchestrator.agent_engine (set GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, AGENT_ENGINE_STAGING_BUCKET).

  • Backend → Docker (Dockerfile) → Google Cloud Run (app + mongodb-mcp/ service).

  • CI/CD.github/workflows/ci.yml: PRs run lint + tool-schema gate + tests; main → staging; release/dispatch → production (manual approval).

    Hosted url

    link

    Team Members

    • Harish Rajagopalan
    • Nihal Mouni
    • K Vikas

License

Apache-2.0.

from github.com/HR-coding/TaxAssist

Installing TaxAssist

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/HR-coding/TaxAssist

FAQ

Is TaxAssist MCP free?

Yes, TaxAssist MCP is free — one-click install via Unyly at no cost.

Does TaxAssist need an API key?

No, TaxAssist runs without API keys or environment variables.

Is TaxAssist hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install TaxAssist in Claude Desktop, Claude Code or Cursor?

Open TaxAssist on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare TaxAssist with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All communication MCPs