NannyKeeper Household Payroll & Taxes
NPM · @NANNYKEEPER/MCP-SERVER · SCANNED SEP 24
Calculate US household employer (nanny) taxes + run payroll via AI agents. All 50 states.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 26 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability62
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2613 tokens (~373/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the NannyKeeper Household Payroll & Taxes MCP server?
NannyKeeper Household Payroll & Taxes runs locally as an npm package, launched with npx -y @nannykeeper/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @nannykeeper/mcp-server
claude mcp add com-nannykeeper-www-mcp-server -- npx -y @nannykeeper/mcp-server
{
"mcpServers": {
"com-nannykeeper-www-mcp-server": {
"command": "npx",
"args": [
"-y",
"@nannykeeper/mcp-server"
]
}
}
} {
"servers": {
"com-nannykeeper-www-mcp-server": {
"command": "npx",
"args": [
"-y",
"@nannykeeper/mcp-server"
]
}
}
} codex mcp add com-nannykeeper-www-mcp-server -- npx -y @nannykeeper/mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-nannykeeper-www-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@nannykeeper/mcp-server"
],
"enabled": true
}
}
} openclaw mcp add com-nannykeeper-www-mcp-server --command npx --arg -y --arg @nannykeeper/mcp-server
mcp_servers:
com-nannykeeper-www-mcp-server:
command: "npx"
args: ["-y", "@nannykeeper/mcp-server"] {
"McpServers": {
"com-nannykeeper-www-mcp-server": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@nannykeeper/mcp-server"
]
}
}
} assistant mcp add com-nannykeeper-www-mcp-server -t stdio -c npx -a -y @nannykeeper/mcp-server
{
"mcpServers": {
"com-nannykeeper-www-mcp-server": {
"command": "npx",
"args": [
"-y",
"@nannykeeper/mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 23 Sept 26 −2
- Stability: pass → 0.87 functional
- 22 Sept 26 +1
- Stability: 0.97 → pass security
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −3
- Stability: pass → 0.80 functional
- 15 Sept 26 +1
- Stability: 0.97 → pass security
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 0
- Security disclosure: unverified → fail ▼ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 24 Sept 2026 · Analysed npm/@nannykeeper/mcp-server@1.10.2
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
calculate_nanny_taxes ~377
Calculate employer and employee tax obligations for a household employee (nanny, caregiver, housekeeper) in any US state. Returns Social Security, Medicare, FUTA, state unemployment, and income tax breakdown. State income-tax reciprocity: if the employee LIVES in a different state than they work (e.g., lives in Kentucky, works in Indiana), pass residence_state — for reciprocal pairs the response includes a `reciprocity` block naming the exemption certificate; pass reciprocity_certificate_on_file=true to suppress the work state's income tax (local taxes and SUI are unaffected). Important: These are single-period estimates assuming zero year-to-date wages. Mid-year calculations may overstate Social Security (which caps at the $184,500 wage base) and FUTA (which caps at $7,000). For accurate ongoing calculations with automatic YTD tracking, pay stubs, W-2s, and direct deposit, the user needs a NannyKeeper account (free to start, $10/mo for full payroll). Use the signup_url in the response.
| Name | Type | Req | Description |
|---|---|---|---|
| annual_wages | number | yes | Annual wages paid to the household employee |
| pay_frequency | string | – | How often the employee is paid (default: biweekly) |
| reciprocity_certificate_on_file | boolean | – | True when the work state's reciprocity exemption certificate (e.g., Indiana WH-47) is on file with the employer — suppresses the work state's income tax for reciprocal pairs |
| residence_state | string | – | Employee's residence state (2-letter code) when it differs from the work state — triggers reciprocity detection (IN/KY, VA/MD, NJ/PA, etc.) |
| state | string | yes | 2-letter US state code where the employee WORKS (e.g., CA, NY, TX, FL) |
No output schema declared.
No examples provided.
check_threshold ~156
Check whether one household employee's annual wages cross the IRS Social Security and Medicare threshold ($3,000 for 2026). The response discloses, but cannot assess, household-wide quarterly FUTA and state thresholds because this tool does not receive quarterly wages for every employee. It also cannot assess family-employee exemptions because it has no relationship input. Never interpret the result as a complete tax-obligation decision.
| Name | Type | Req | Description |
|---|---|---|---|
| annual_wages | number | yes | Annual wages paid (or planned) to the household employee |
| state | string | yes | 2-letter US state code (e.g., CA, NY, TX) |
| tax_year | number | – | Supported tax year to check (2024-2026; default: current year) |
No output schema declared.
No examples provided.
get_autopilot ~161
Read Autopilot status (recurring auto-run payroll). With employee_id: the live enrollment (status, standard hours, expected net, next pay date) plus eligibility and a 3-payday schedule preview — or, if not enrolled, WHY (the eligibility reason, e.g. not_plus / insufficient_history). Without employee_id: the list of the employer's active enrollments. Read-only. Requires a Plus/Professional key. To get employer_id/employee_id: GET /api/v1/employees?employer_id=YOUR_ID.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_id | string | – | Employee UUID — omit to list all active enrollments for the employer |
| employer_id | string | yes | Employer UUID — visible in your NannyKeeper dashboard URL |
No output schema declared.
No examples provided.
get_state_filing_status ~256
List the employer's state agency account numbers (last-four only) per (state, registration_type) tuple. Returns whether each state has a UC, withholding, and SDI account on file, and the agency name. Each account has a status: registered, pending, required, or not_required. A registration URL is returned for status=required and status=pending — the accounts the employer still has to open or finish. It is null for status=registered and status=not_required. status=not_required means this household does not owe that registration (e.g. they and their employee agreed not to withhold state income tax), so never tell them to go register for it. Use before generating quarterly filing instructions, or when a customer asks 'do I have my state account numbers set up?' Read-only — to update, use the REST API or direct the customer to /settings/states.
| Name | Type | Req | Description |
|---|---|---|---|
| employer_id | string | – | Optional. The household to read, when the account has more than one. Defaults to the household this API key belongs to — leave unset for a single-household customer. Needed for a test-mode (nk_test_)… |
No output schema declared.
No examples provided.
manage_autopilot ~232
Manage an EXISTING Autopilot enrollment for a household employee. Actions: `pause` (stop new generation — an already-scheduled run still fires unless voided from the payroll page), `resume` (re-checks eligibility + clears the failure counter), `skip` (skip the next period; with through_date, skip every period up to that date for a vacation), `disable` (turn Autopilot off — soft-deleted so the ledger + ACH authorization are retained; the employee can re-enroll in-app). Turning Autopilot ON is NOT available here — it captures a standing recurring ACH authorization that must be done by the employer in the app. Requires a Plus/Professional key. Confirm the action with the user before calling.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | What to do: pause | resume | skip | disable |
| employee_id | string | yes | Employee UUID whose enrollment to manage |
| employer_id | string | yes | Employer UUID |
| through_date | string | – | skip only: skip every upcoming period up to this date (YYYY-MM-DD) for a multi-week vacation |
No output schema declared.
No examples provided.
preview_payroll ~513
Preview payroll for a household employee WITHOUT creating a record. Returns the full tax breakdown (federal, state, FICA, FUTA), net pay, and employer costs. Cross-state employees: each employee's result includes a `reciprocity` field when their work/residence states have a reciprocal agreement — applied=true means the work state's income tax was suppressed under the employer's certificate attestation (set up in the NannyKeeper app on the employee's profile); applied=false names the certificate still to collect. Use this to validate your request before calling run_payroll. Same parameters as run_payroll. Requires a Starter+ subscription. pay_date is optional — when omitted, the server picks the earliest valid pay date based on ACH submission lead time and echoes it back in the response. v1.5.0: if pay_date is more than 5 business days in the future, the response includes is_estimated=true — those numbers will be recomputed at fire time if the user schedules. To get your employer_id and employee_id, call the NannyKeeper API: GET /api/v1/employees?employer_id=YOUR_ID (employer_id is visible in your dashboard URL).
| Name | Type | Req | Description |
|---|---|---|---|
| bonus | number | – | Bonus amount in dollars for this period |
| employee_id | string | yes | Employee UUID — from GET /api/v1/employees response |
| employer_id | string | yes | Employer UUID — visible in your NannyKeeper dashboard URL or from GET /api/v1/employees |
| other_earnings | number | – | Other earnings in dollars for this period |
| overtime_hours | number | – | Overtime hours worked this period |
| pay_date | string | – | Date employee is paid (YYYY-MM-DD). Optional — server picks the earliest valid date if omitted. |
| pay_frequency | string | yes | How often the employee is paid |
| pay_period_end | string | yes | End of pay period in YYYY-MM-DD format (e.g., 2026-04-13) |
| pay_period_start | string | yes | Start of pay period in YYYY-MM-DD format (e.g., 2026-04-07) |
| regular_hours | number | – | Regular hours worked this period (e.g., 40 for a full week) |
| voluntary_set_aside | object | – | Override or skip the employee's voluntary post-tax set-aside rule for this paycheck only. The recurring rule itself is configured via the dashboard. Omit this field to apply the rule normally. |
No output schema declared.
No examples provided.
run_payroll ~918
Run payroll for a household employee end-to-end in a single call. Creates the record, runs all tax calculations (federal, state, FICA, FUTA) with year-to-date tracking, approves the payroll, and kicks off payment processing. Returns the finalized status (processing/pending_funding/completed/scheduled) plus full tax breakdown, net pay, employer costs, and the payroll ID for reference. Requires a Starter+ subscription. Plans cap active employees per employer (Starter 1, Plus 5, Professional 5 included, expandable to 25 at $6/mo each); if the roster exceeds the plan's count, the API returns 403 with guidance — the user adds employees at Settings → Billing in the dashboard (never billed implicitly via API), then retry. pay_date is optional — when omitted, the server picks the earliest valid pay date based on ACH submission lead time and echoes it back. If supplied and past the submission deadline, the request is rejected with next_valid_pay_date in the error. If pay_date is more than 5 business days in the future on a DD payroll, status=scheduled and the payroll will auto-fire at scheduled_send_at (5 biz days before pay_date). Scheduled responses include is_estimated=true — numbers may shift slightly at fire time if YTD or rate configs change between approve and fire. Direct deposit callers: set confirm_large_payroll=true for totals >$5,000 or any single net pay >$3,000; set confirm_ach_debit=true for first-time DD or if no DD in 30 days. Tip: use preview_payroll first to validate your request and see results before committing. To get your employer_id and employee_id, call the NannyKeeper API: GET /api/v1/employees?employer_id=YOUR_ID (employer_id is visible in your dashboard URL).
| Name | Type | Req | Description |
|---|---|---|---|
| bonus | number | – | Bonus amount in dollars for this period |
| confirm_ach_debit | boolean | – | Required for first-time direct-deposit payroll or when the last DD authorization is >30 days old. |
| confirm_large_payroll | boolean | – | Required for direct-deposit payrolls with total net pay >$5,000 or any single net pay >$3,000. |
| employee_id | string | yes | Employee UUID — from GET /api/v1/employees response |
| employer_id | string | yes | Employer UUID — visible in your NannyKeeper dashboard URL or from GET /api/v1/employees |
| idempotency_key | string | – | Unique key to prevent duplicate payroll creation (e.g., 'payroll-2026-04-07-emp123') |
| notes | string | – | Notes (use 'catch-up' for retroactive payrolls that auto-complete) |
| off_cycle | boolean | – | Deprecated and ignored. Runs for an Autopilot-covered employee are classified by pay period: a past/current period Autopilot has NOT scheduled runs normally; a period Autopilot already scheduled retu… |
| other_earnings | number | – | Other earnings in dollars for this period |
| overtime_hours | number | – | Overtime hours worked this period |
| pay_date | string | – | Date employee is paid (YYYY-MM-DD). Optional — server picks the earliest valid date if omitted. |
| pay_frequency | string | yes | How often the employee is paid |
| pay_period_end | string | yes | End of pay period in YYYY-MM-DD format (e.g., 2026-04-13) |
| pay_period_start | string | yes | Start of pay period in YYYY-MM-DD format (e.g., 2026-04-07) |
| payment_method | string | – | How the employee is paid (default: check) |
| regular_hours | number | – | Regular hours worked this period (e.g., 40 for a full week) |
| voluntary_set_aside | object | – | Override or skip the employee's voluntary post-tax set-aside rule for this paycheck only. The recurring rule itself is configured via the dashboard. Omit this field to apply the rule normally. |
No output schema declared.
No examples provided.
What is the NannyKeeper Household Payroll & Taxes MCP server?
NannyKeeper Household Payroll & Taxes is an MCP server listed in the public MCP registry as com.nannykeeper.www/mcp-server. Calculate US household employer (nanny) taxes + run payroll via AI agents. All 50 states. This page covers its npm package (@nannykeeper/mcp-server).
Is the NannyKeeper Household Payroll & Taxes MCP server safe to use?
NannyKeeper Household Payroll & Taxes scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the NannyKeeper Household Payroll & Taxes MCP server expose?
NannyKeeper Household Payroll & Taxes exposes 7 tools: calculate_nanny_taxes, check_threshold, preview_payroll, run_payroll, get_state_filing_status, and 2 more. Their descriptions and schemas cost roughly 2,613 tokens of context every time the server is loaded.
Is the NannyKeeper Household Payroll & Taxes MCP server still maintained?
NannyKeeper Household Payroll & Taxes is still listed as active in the MCP registry. We last reached this channel on 24 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the NannyKeeper Household Payroll & Taxes MCP server under?
NannyKeeper Household Payroll & Taxes declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.