# com.nannykeeper.www/mcp-server (npm · @nannykeeper/mcp-server)

Calculate US household employer (nanny) taxes + run payroll via AI agents. All 50 states.

- Trust score: 64/100 (medium)
- Change this week: +22
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `@nannykeeper/mcp-server`: 64/100 (this document), [markdown](https://verifymcp.io/servers/com-nannykeeper-www-mcp-server/nannykeeper-mcp-server.md), [page](https://verifymcp.io/servers/com-nannykeeper-www-mcp-server/nannykeeper-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@nannykeeper/mcp-server`
- Version: `1.7.0`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 86/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 51 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 53/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1663 tokens (~332/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add com-nannykeeper-www-mcp-server -- npx -y @nannykeeper/mcp-server
```

### Codex

```bash
codex mcp add com-nannykeeper-www-mcp-server -- npx -y @nannykeeper/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-nannykeeper-www-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@nannykeeper/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-nannykeeper-www-mcp-server --command npx --arg -y --arg @nannykeeper/mcp-server
```

### Hermes

```yaml
mcp_servers:
  com-nannykeeper-www-mcp-server:
    command: "npx"
    args: ["-y", "@nannykeeper/mcp-server"]
```

### Other

```json
{
  "mcpServers": {
    "com-nannykeeper-www-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@nannykeeper/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 64, +32)

- [security regression] Provenance: unverified → fail
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Install scripts: unverified → pass
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] Stability: unverified → 0.27
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-08-02 (score 32, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-07-31 (score 17, +11)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −36)

- [security regression] Malware scan: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 42)

First indexed and scored.

## MCP tools (5)

### `calculate_nanny_taxes` (~208 tokens)

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. 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.

Input parameters:

- `annual_wages` (number, required): Annual wages paid to the household employee
- `pay_frequency` (string): How often the employee is paid (default: biweekly)
- `state` (string, required): 2-letter US state code (e.g., CA, NY, TX, FL)

### `check_threshold` (~149 tokens)

Check if annual wages to a household employee cross the IRS threshold ($3,000 for 2026) that triggers employer tax obligations (Social Security, Medicare, Schedule H). Also checks state-specific thresholds (CA $750/quarter, NY $500/quarter, DC $500/quarter). Use this when someone asks 'Do I need to pay nanny taxes?' or 'Am I a household employer?'

Input parameters:

- `annual_wages` (number, required): Annual wages paid (or planned) to the household employee
- `state` (string, required): 2-letter US state code (e.g., CA, NY, TX)
- `tax_year` (number): Tax year to check (default: current year)

### `preview_payroll` (~445 tokens)

Preview payroll for a household employee WITHOUT creating a record. Returns the full tax breakdown (federal, state, FICA, FUTA), net pay, and employer costs. 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).

Input parameters:

- `bonus` (number): Bonus amount in dollars for this period
- `employee_id` (string, required): Employee UUID — from GET /api/v1/employees response
- `employer_id` (string, required): 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, required): How often the employee is paid
- `pay_period_end` (string, required): End of pay period in YYYY-MM-DD format (e.g., 2026-04-13)
- `pay_period_start` (string, required): 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.

### `run_payroll` (~720 tokens)

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. 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).

Input parameters:

- `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, required): Employee UUID — from GET /api/v1/employees response
- `employer_id` (string, required): 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)
- `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, required): How often the employee is paid
- `pay_period_end` (string, required): End of pay period in YYYY-MM-DD format (e.g., 2026-04-13)
- `pay_period_start` (string, required): 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.

### `get_state_filing_status` (~141 tokens)

List the employer's state agency account numbers (last-four only) per (state, registration_type) tuple — UC, withholding, SDI. Returns the agency name and a registration URL for any that are missing. Use before generating quarterly filing instructions (e.g., 'file Form UC-2 for Q2 — your PA UC account is ••••5678') or when a customer asks whether their state setup is complete. Read-only. To update, use the POST /api/v1/state-registrations REST endpoint or direct the customer to /settings/states — LLMs shouldn't fabricate account numbers since they land on real tax filings.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-nannykeeper-www-mcp-server/nannykeeper-mcp-server#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 32
- 2026-08-01: 17
- 2026-07-31: 17
- 2026-07-30: 6
- 2026-07-28: 42
- 2026-07-27: 42

## Links

- npm package: https://www.npmjs.com/package/@nannykeeper/mcp-server
- Socket report: https://socket.dev/npm/package/@nannykeeper/mcp-server
- Repository: https://github.com/nannykeeper/mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/com-nannykeeper-www-mcp-server/nannykeeper-mcp-server/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-nannykeeper-www-mcp-server/nannykeeper-mcp-server/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-nannykeeper-www-mcp-server/nannykeeper-mcp-server
