{"slug": "grounding-an-llm-in-real-tax-data-with-a-public-mcp-server", "title": "Grounding an LLM in real tax data with a public MCP server", "summary": "2Fin has launched a free public MCP server at taxmcp.ai2fin.com that grounds LLM tax queries in real data from 88 countries, with eight tools including tax rate lookup and income tax estimates. Every response includes the source authority and a dataVerifiedOn date, ensuring auditable outputs. The same engine powers the company's web calculators, preventing drift between the MCP answers and the site.", "body_md": "We all know the failure mode: ask an LLM for a tax rate and it'll hand you a confident number with zero provenance. Fine for a demo, useless for anything you'd ship. The interesting question is how you *ground* the model in a source of truth — and MCP has quietly made that a one-liner.\n\nQuick recap for anyone who missed it: **Model Context Protocol** is an open standard (Anthropic, late 2024) for connecting an assistant to external tools and data. Client support is now broad — Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code, Windsurf.\n\n2Fin runs a free public MCP server for tax at `taxmcp.ai2fin.com`\n\n. No key, no auth. Point any MCP client at it:\n\n```\n{\n  \"mcpServers\": {\n    \"tax\": { \"url\": \"https://taxmcp.ai2fin.com\" }\n  }\n}\n```\n\nYou get eight tools: `tax_rate_lookup`\n\n, `compute_gst_vat`\n\n, `income_tax_estimate`\n\n, `company_tax_estimate`\n\n, `cgt_estimate`\n\n, `superannuation_estimate`\n\n, `student_loan_repayment`\n\n, `compare_countries`\n\n— across 88 countries.\n\n**Every response includes its source authority and a dataVerifiedOn date.** That's the part most \"AI + data\" integrations skip, and it's exactly what makes the output auditable instead of vibes. A wrong or stale number is\n\n```\n> income_tax_estimate { country: \"AU\", income: 95000 }\n< { incomeTax: ..., medicareLevy: ..., takeHome: ...,\n    source: \"ATO — ato.gov.au\", dataVerifiedOn: \"2026-06-01\" }\n```\n\nThe same engine backs their web calculators, so the MCP answers and the site can't drift apart — which, if you've ever maintained two copies of the same rate table, you'll appreciate.\n\nGood worked example of the pattern: don't make the model *remember* facts, give it a tool that *fetches* them with a citation attached. The tax domain just makes the stakes obvious — but the same design applies to any data your assistant has no business memorising.\n\nIf you want to poke at it, it's free and needs no account: [taxmcp.ai2fin.com](https://taxmcp.ai2fin.com).", "url": "https://wpnews.pro/news/grounding-an-llm-in-real-tax-data-with-a-public-mcp-server", "canonical_source": "https://dev.to/d_edu_eebba6de1155fe/grounding-an-llm-in-real-tax-data-with-a-public-mcp-server-5h58", "published_at": "2026-08-19 04:26:39+00:00", "updated_at": "2026-08-19 04:42:20.609482+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-tools", "ai-infrastructure", "developer-tools"], "entities": ["2Fin", "Anthropic", "Claude Desktop", "Claude Code", "ChatGPT", "Cursor", "VS Code", "Windsurf"], "alternates": {"html": "https://wpnews.pro/news/grounding-an-llm-in-real-tax-data-with-a-public-mcp-server", "markdown": "https://wpnews.pro/news/grounding-an-llm-in-real-tax-data-with-a-public-mcp-server.md", "text": "https://wpnews.pro/news/grounding-an-llm-in-real-tax-data-with-a-public-mcp-server.txt", "jsonld": "https://wpnews.pro/news/grounding-an-llm-in-real-tax-data-with-a-public-mcp-server.jsonld"}}