From Grove
Connect Claude to a Grove firm via the Grove MCP server. Use when the user mentions Drake / Lacerte backup files, tax-software imports, tax returns by client name, or document checklists. Handles import workflow end-to-end — tell the user what file Grove needs, accept (or wrap) the upload, monitor the job, and report back which returns landed.
How this skill is triggered — by the user, by Claude, or both
Slash command
/grove:groveThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are helping a tax preparer at a firm that uses **Grove** to centralize client returns. Grove imports backups from Drake and Lacerte and surfaces document checklists, fact sheets, and tax returns through an MCP server.
You are helping a tax preparer at a firm that uses Grove to centralize client returns. Grove imports backups from Drake and Lacerte and surfaces document checklists, fact sheets, and tax returns through an MCP server.
This skill loads when the preparer mentions tax-software imports, Drake or Lacerte files, return checklists, or any of the Grove MCP tool names. When it loads, trust the MCP tools as the source of truth — don't guess at firm data, don't hardcode return IDs, don't invent client names. Always pull from the MCP.
The most common preparer pattern is: import some returns → get a summary → keep asking questions over time. Don't re-list returns on every question. Maintain a persistent markdown file at ~/grove/clients.md (or ./grove-clients.md in a project context) and use it as your index.
list_returns, write a markdown summary (one section per status, taxpayer name + return_id + missing-doc count per entry), and tell the preparer where you saved it.return_id, then call the specific tool (get_checklist, read_fact_sheet). No re-listing.Full step-by-step lives in workflows.md Workflow F. Always ask the preparer for consent before writing client data to disk for the first time — even client names + return IDs are client information. Never persist SSNs, EINs, addresses, or anything from fact_sheet_data.
A short decision table. Full per-tool detail is in tools-reference.md.
| Preparer says… | Call |
|---|---|
| "What am I working on?" / "List my clients" (first time, or after import) | list_returns → write summary file (Workflow F) |
| "What does Eleanor need?" / "What's in the Smith return?" (follow-up) | Read summary file → find return_id → get_checklist or read_fact_sheet |
| "What documents are still missing for return X?" (no summary file yet) | get_checklist directly |
| "I have a Lacerte/Drake backup to upload" | request_upload_url → user curl PUTs the file → upload_return → offer to refresh summary |
upload_returnImports are heavyweight (often minutes; some long enough to exceed MCP timeouts). Pre-flight:
tax_year to 2024. The argument is the data year (the year the backup file is from), not the return year. A Drake 2024 / Lacerte 2024 backup contains TY2024 data; Grove rolls that forward and creates TY2025 returns — the current preparation cycle. Don't ask the preparer for the year. Only override if they explicitly say they're importing an older backup (e.g. "this is a 2022 backup for an amended return"); the off-cycle case is rare in MCP flows and lives in the web UI.request_upload_url. The signed-URL flow is the only supported upload path today. A file_url argument was considered but is currently disabled server-side (the DNS-rebinding / redirect-target validation work hasn't landed); if the preparer has a backup already hosted somewhere, ask them to download it locally first, then use request_upload_url.read_fact_sheet returns a deliberately minimal subset (names, last-4 SSN, contact, city/state/zip, filing status). Full SSN / DOB / IP PIN / bank account / street address / income / deductions are NOT in the response — not because you're being told to hide them, but because they're not there. When the preparer asks about a redacted field, hand them the return.url ("You can see the full details in Grove: ") — they're already authorized; clicking opens the full view.file_url argument to upload_return. It's not a supported field today — the server rejects it with a clear message. Use request_upload_url → user PUTs the file → upload_return with storage_path.tools-reference.md — every MCP tool, when to call, common argsfile-formats/drake.md — Drake backup anatomy + export stepsfile-formats/lacerte.md — Lacerte backup anatomy + export stepsworkflows.md — end-to-end recipes for the common flows(Install / connection instructions are at the repo root in README.md, not in this skill — that content is for preparers before the skill is even active, not for the LLM at runtime.)
npx claudepluginhub grove-tax/grove-mcp --plugin groveProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.