Nunabot is three products in one stack. An MCP server that lets AI assistants help families advocate for aging loved ones. NunaPipe, a secure bridge for care records between agencies, families, and platforms. And NunaSoft, the operating system for home-care agencies. This is the documentation for all three.
The open protocol surface. Any MCP-aware AI — Perplexity, Claude, Codex — can read loved-one digests, ask questions, and draft advocacy emails on behalf of a caregiver.
See tools and OAuth →A Plaid-style bridge for care data. Agencies, hospitals, and partner platforms push structured events — visits, notes, medications — through a single signed endpoint.
See the webhook spec →A multi-tenant operating system for home-care agencies. Caregivers clock in from their phone, families get live updates through NunaPipe, agencies keep a clean book of record.
Tour the agency portal →The Nunabot MCP server exposes a small, opinionated toolbelt to any AI assistant that speaks the Model Context Protocol. A caregiver mints a token, pastes it into Perplexity, Claude, or Codex, and the assistant can immediately query their loved ones, read digests, and draft messages to doctors.
Two ways to authenticate — pick one.
Caregivers visit /settings in the Nunabot app, click
Connect agent, and mint a token. Tokens look like
nbmcp_<24 base64url chars>, are stored server-side as SHA-256 hashes
(never in plaintext), and can be revoked from the same UI.
Authorization: Bearer nbmcp_5rT3mU9qB1eF2pK4lX8vZ6oS
For AI hosts that prefer standards compliance, Nunabot implements the full MCP
OAuth 2.1 profile — authorization-code flow with PKCE S256, and
RFC 7591
Dynamic Client Registration so no human has to pre-register the app.
/.well-known/oauth-authorization-server.POST /oauth/register — returns a fresh client_id./settings/mcp-authorize.nboc_… (60s, single-use).POST /oauth/token with PKCE verifier returns an nbmcp_… bearer./api/mcp.Supported scopes:
nunabot.read — list loved ones, read digests, ask questions.nunabot.draft — everything in read, plus draft outbound email and log notes.
A single endpoint: POST https://app.nunabot.com/api/mcp. Standard MCP
JSON-RPC 2.0 envelopes. For streaming responses, send
Accept: text/event-stream and Nunabot will reply with SSE frames —
one event: message per JSON-RPC response, terminated by
event: end.
POST /api/mcp HTTP/1.1 Host: app.nunabot.com Authorization: Bearer nbmcp_… Content-Type: application/json Accept: text/event-stream {"jsonrpc":"2.0","id":1,"method":"tools/call", "params":{"name":"ask_about_loved_one", "arguments":{"loved_one_id":"lo_mom","question":"how is her sleep?"}}}
Paste the bearer token into Perplexity's MCP settings.
{
"name": "nunabot",
"url": "https://app.nunabot.com/api/mcp",
"auth": { "type": "bearer", "token": "nbmcp_…" }
}
{
"mcpServers": {
"nunabot": {
"url": "https://app.nunabot.com/api/mcp",
"headers": { "Authorization": "Bearer nbmcp_…" }
}
}
}
# Nunabot MCP — read + draft across loved ones [mcp_servers.nunabot] url = "https://app.nunabot.com/api/mcp" auth_header = "Bearer nbmcp_…" stream = "sse"
NunaPipe is the private-link layer between care-data producers and Nunabot's family-facing app. Think of it as Plaid for caregiving: agencies, EHRs, and home- health platforms push structured events at NunaPipe, and Nunabot lights up the right loved-one record for the right family in real time.
institution_id,
subject_ref, event_type, payload — lets us onboard
any partner without redesigning the app.X-NunaPipe-Signature: sha256=…, computed over the raw body with a
per-partner secret. Replays are cheap; forgeries are not.{
"institution_id": "nunasoft-sunrise-home-care",
"subject_ref": "client_8c1f",
"event_type": "visit.completed",
"occurred_at": "2026-04-16T21:04:00Z",
"payload": {
"caregiver_name": "María R.",
"duration_min": 92,
"note_excerpt": "Mom ate a full lunch, mood upbeat…"
}
}
Compute HMAC-SHA256(raw_body, partner_secret) and send the hex digest
prefixed with sha256=. Nunabot verifies in constant time and rejects
anything older than 5 minutes (clock-skew tolerant).
const sig = "sha256=" + hmacSha256Hex(secret, rawBody); headers["X-NunaPipe-Signature"] = sig; headers["X-NunaPipe-Institution"] = institutionId;
NunaSoft agencies get NunaPipe for free — it's wired into clock-in and clock-out. Outside partners (EHRs, hospital discharge systems, other agency platforms) can email partners@nunabot.com for a sandbox secret and a signed integration agreement.
NunaSoft is the operating system for home-care agencies. Each agency is a tenant
with its own slug — nunasoft.com/sunrise-home-care — and its own admin
dashboard, caregiver roster, client list, visit schedule, and message thread.
/me — pick a shift, clock in, log a note, clock out.Every record is namespaced to a tenant — no cross-tenant reads, ever.
tenants/{tenant_id}/
staff/{uid} # caregivers & admins
clients/{client_id} # +family_share_enabled, +secret_hash
visits/{visit_id} # scheduled + in-progress + completed
notes/{note_id} # observations, vitals, med confirmations
media/{media_id} # photos taken during a visit
messages/{msg_id} # threads per client
NunaSoft's /me route is a phone-first webapp. Caregivers see their open
shifts, pick one, clock in with a single tap, write a note, attach a photo, and
clock out. Each action emits a NunaPipe event if the client has family share on —
no extra work for the caregiver.
// admin flips family share for a client await enrollFamilyShare(tenantId, clientId); // → generates secret, stores sha256 hash on client row, // → sends secret one-time to admin via secure download // every clock-out after this call emitFamilyShareEvent({ tenantId, clientId, type: "visit.completed", payload: { duration_min, note_excerpt } });