Categories › Data & Databases › Files, spreadsheets, CSV & PDFs
The Lunenburg, Massachusetts town and school budget, every figure traced to its source document.
Remote server: your requests and data go to lunenburgbudgetproject.org. Claude Code: claude mcp add --transport http archive https://lunenburgbudgetproject.org/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
list_datasets — Every dataset in the archive, with THE YEARS EACH COVERS, its row count and its size. Call this before answering from prose: it is how you fread_first — The grain of every table and the specific ways to get a confident wrong answer out of this data. Read this before computing anything. It staworked_examples — 107 questions this archive can answer, each with the SQL that answers it. Every one is executed against the database on every build, so nonesearch_meetings — Which of the 1,422 published town meeting documents contain a word — every board, 2025 onward. Returns the board, the date and a citable URLbudget_history — What a school budget line was in each year, AT ONE STAGE. The stage argument is required and singular on purpose: `proposed`, `settled` and staff — How many people the town PRINTED on a school staff roster, by year, school and kind of job. Uses our classification of the printed title, nedocument — Where a document came from: the publisher's URL, our copy, and its sha256 so a reader can check they have the same bytes. Use it to cite anyquery — Any question the other tools do not cover, as one read-only SQL statement over the archive database. SELECT or WITH only; a LIMIT is imposedNot tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.