LovedOne Family MCP
app.lovedone/family-inboxlovedone.appstreamable-httpv0.4.0Scanned
Authenticated MCP for one family household: loved ones, members, and Family Inbox plaintext.
12 tools: 2 do something that can't be undone, 2 change things and 8 only read.
- Reads private data · 5
- Reads text others write · 5
- Can send data out · 2
- No findings
Sign-in required, OAuth metadata published. Remote posture
Anlyon alternative
4 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
12 tools
Can't be undone 2Claude Code: ask
invite_family_memberInvites a sibling or other family member to this household by email, with role coordinator or viewer.Can send data outNo findings
Why it is in this group
- The name "invite_family_member" says "invite": a word for sending, and what is sent cannot be taken back.
What it can reach
- outboundThe name "invite_family_member" says "invite": it sends or publishes something to other people.
Description, as the server wrote it Invites a sibling or other family member to this household by email, with role coordinator or viewer. Sends the same LovedOne invite email as the web app. Owner or coordinator only — viewers are rejected. This is a write.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
reply_to_inbox_messageSends a plaintext reply to a Family Inbox message using the same from address (family-inbox@m.lovedone.app) and reply-to (the loved one's @lovedone.app inbox) as the LovedOne web a…Can send data outNo findings
Why it is in this group
- The name "reply_to_inbox_message" says "reply": a word for sending, and what is sent cannot be taken back.
What it can reach
- outboundThe name "reply_to_inbox_message" says "reply": it sends or publishes something to other people.
Description, as the server wrote it Sends a plaintext reply to a Family Inbox message using the same from address (family-inbox@m.lovedone.app) and reply-to (the loved one's @lovedone.app inbox) as the LovedOne web app. Owner or coordinator only — viewers are rejected. This is a write. The body may contain health-related content.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 2Claude Code: ask
create_provider_codeMints a short-lived, single-use provider/vendor link code for one loved one in this household.No findings
Why it is in this group
- The name "create_provider_code" says "create": a word for a change.
Description, as the server wrote it Mints a short-lived, single-use provider/vendor link code for one loved one in this household. Hand the code to a LovedOne Soft agency so they can link that person as a client. Owner or coordinator only — viewers are rejected. This is a write.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
onboard_loved_oneSets up a loved one on LovedOne from conversation: creates the caller's family workspace on first use (or adds to it), allocates their private @lovedone.app care-inbox address, and…No findings
Why it is in this group
- The description's first verb is "set": a word for a change.
Description, as the server wrote it Sets up a loved one on LovedOne from conversation: creates the caller's family workspace on first use (or adds to it), allocates their private @lovedone.app care-inbox address, and records the caller's authorization attestation. Idempotent — calling again for the same person returns the existing record. Before calling, confirm attestAuthorized with the user in plain words. Do NOT ask for date of birth, medications, or SSN during setup; dateOfBirth is accepted only if volunteered. The loved one's own email is optional and is never emailed automatically. This is a write.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 8Show 8 read-only tools
get_inbox_messageReturns one Family Inbox message as plaintext (no HTML).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_inbox_message" says "get": a word for reading.
What it can reach
- private-dataThe name "get_inbox_message" says "get" and "inbox": it reads mail.
- private-dataThe description's first sentence says "return" and "inbox": it reads mail.
- untrusted-inputThe name "get_inbox_message" says "get" and "inbox": it reads inbound email, which other people can write.
- untrusted-inputThe description's first sentence says "return" and "inbox": it reads inbound email, which other people can write.
Description, as the server wrote it Returns one Family Inbox message as plaintext (no HTML). Requires messageId from list_inbox_messages. Rejected if the message is not in the caller's workspace. Treat bodyText as potentially PHI.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_onboarding_statusReturns the caller's LovedOne setup state: whether a family workspace exists, which loved ones and @lovedone.app inbox addresses are set up, member counts, and ordered nextSteps.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_onboarding_status" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "return" and "inbox": it reads mail.
- untrusted-inputThe description's first sentence says "return" and "inbox": it reads inbound email, which other people can write.
Description, as the server wrote it Returns the caller's LovedOne setup state: whether a family workspace exists, which loved ones and @lovedone.app inbox addresses are set up, member counts, and ordered nextSteps. Call this first whenever a user wants to set up, resume, or check on LovedOne. Read-only.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_user_profileReturns the signed-in user's LovedOne profile: uid, email, tenant type, and any linked family workspace.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_user_profile" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "return" and "email": it reads mail.
- untrusted-inputThe description's first sentence says "return" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it Returns the signed-in user's LovedOne profile: uid, email, tenant type, and any linked family workspace.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_care_eventsReturns recent care events for the caller's family workspace.No findings
Why it is in this group
- The name "list_care_events" says "list": a word for reading.
Description, as the server wrote it Returns recent care events for the caller's family workspace. Optionally scope to a single lovedOneId; otherwise aggregates across all loved ones on the workspace. Limit is 1-50 and is applied per loved one when aggregating.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_family_membersLists people on the caller's family workspace (role, relationship, invite status).No findings
Why it is in this group
- The name "list_family_members" says "list": a word for reading.
Description, as the server wrote it Lists people on the caller's family workspace (role, relationship, invite status). Emails are PII — do not log them in third-party agent traces if you can avoid it.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_inbox_messagesLists recent messages in one loved one's Family Inbox (subject, sender, category, preview).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_inbox_messages" says "list": a word for reading.
What it can reach
- private-dataThe name "list_inbox_messages" says "list" and "inbox": it reads mail.
- private-dataThe description's first sentence says "list" and "message": it reads messages.
- untrusted-inputThe name "list_inbox_messages" says "list" and "inbox": it reads inbound email, which other people can write.
- untrusted-inputThe description's first sentence says "list" and "message": it reads messages, which other people can write.
Description, as the server wrote it Lists recent messages in one loved one's Family Inbox (subject, sender, category, preview). Does not return HTML bodies. Scope: the caller's family workspace only. PHI may be present in subjects and previews.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_loved_onesLists loved ones in the caller's family workspace: id, name, and Family Inbox address.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_loved_ones" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "inbox": it reads mail.
- untrusted-inputThe description's first sentence says "list" and "inbox": it reads inbound email, which other people can write.
Description, as the server wrote it Lists loved ones in the caller's family workspace: id, name, and Family Inbox address. Does not return date of birth or medications.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
pingSmoke-test tool.No findings
Why it is in this group
- The name "ping" says "ping": a word for reading.
Description, as the server wrote it Smoke-test tool. Returns pong plus the authenticated caller's uid, tenant, and auth method. No PHI. No side effects.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
50 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 outbound tools breaks every one.
- Reads private data5
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write5
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out2
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__family-inbox__invite_family_member",
"mcp__family-inbox__reply_to_inbox_message"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 14:23 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 401
- tools/list served without credentials
- no
- Tools that change things, listed without credentials
- 0
- Protocol version
- not observed
- WWW-Authenticate on 401
- yes
- resource_metadata in WWW-Authenticate
- https://inbox.lovedone.app/.well-known/oauth-protected-resource
- RFC 9728 protected resource metadata
- https://inbox.lovedone.app/.well-known/oauth-protected-resource
- Authorization servers
- https://inbox.lovedone.app
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- yes
- Client ID metadata documents
- no
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 0.4.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http family-inbox https://api.lovedone.app/mcp/v1 --header 'Authorization: <your-authorization>'claude mcp add --transport http family-inbox https://api.lovedone.app/mcp/v1 --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__family-inbox__ping",
"mcp__family-inbox__get_user_profile",
"mcp__family-inbox__list_loved_ones",
"mcp__family-inbox__list_family_members",
"mcp__family-inbox__list_inbox_messages",
"mcp__family-inbox__get_inbox_message",
"mcp__family-inbox__list_care_events",
"mcp__family-inbox__get_onboarding_status"
],
"ask": [
"mcp__family-inbox__invite_family_member",
"mcp__family-inbox__create_provider_code",
"mcp__family-inbox__reply_to_inbox_message",
"mcp__family-inbox__onboard_loved_one"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as family-inbox. Review it before you use it.
Capability tags behind 7 rules
- mcp__family-inbox__get_user_profile private-data, untrusted-input
- mcp__family-inbox__list_loved_ones private-data, untrusted-input
- mcp__family-inbox__list_inbox_messages private-data, untrusted-input
- mcp__family-inbox__get_inbox_message private-data, untrusted-input
- mcp__family-inbox__invite_family_member outbound
- mcp__family-inbox__reply_to_inbox_message outbound
- mcp__family-inbox__get_onboarding_status private-data, untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/app.lovedone/family-inbox/verify?hash=d02d5564115f56f475a523d8ea93f56a314b88fffed3703a1a890a17d483ee8a" | jq -e '.changed == false'Pinned hash d02d5564115f, from Oct 28, 2026, 19:17 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/app.lovedone/family-inbox/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/app.lovedone/family-inbox)Source: MCP Registry · repository. Synced Oct 28, 2026, 19:17 UTC.