---
title: "MCP JSON-RPC (Streamable HTTP)"
method: POST
path: "/mcp/v1"
tags: ["MCP"]
---

# MCP JSON-RPC (Streamable HTTP)

`POST /mcp/v1`

## Request

- Base URL: `https://api.lovedone.app`
- URL: `https://api.lovedone.app/mcp/v1`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://inbox.lovedone.app/oauth/authorize`, token URL `https://inbox.lovedone.app/oauth/token`, scopes: `profile:read`, `care_circle:read`)

Authenticated JSON-RPC methods: initialize, tools/list, tools/call, ping.

Live auth: `Authorization: Bearer sk-sand-...` minted at https://inbox.lovedone.app/settings/mcp-keys, or OAuth 2.1 + PKCE. Phase 1 API keys are not scope-gated (empty scope list = full caller access). OAuth authorization-code scopes below are advertised at inbox.lovedone.app/.well-known/oauth-authorization-server.

Tools and required scopes:
- ping — no scope
- get_user_profile — profile:read
- list_loved_ones — care_circle:read
- list_care_events — care_circle:read
- invite_family_member — care_circle:write
- create_provider_code — care_circle:write
- reply_to_inbox_message — care_circle:write

Alias: POST https://inbox.lovedone.app/api/mcp

## Request body

- object
  - `jsonrpc` '2.0', required
  - `id` unknown
  - `method` 'initialize' | 'tools/list' | 'tools/call' | 'ping', required
  - `params` object

## Response `200`

JSON-RPC result

- object

## Other responses

- `401`: Missing or invalid credentials. WWW-Authenticate points at RFC 9728 resource metadata.

---

[API](https://skmtc.dev/lovedone/apis/lovedone-public-machine-surface.md) · [All operations](https://skmtc.dev/lovedone/apis/lovedone-public-machine-surface/llms.txt) · [OpenAPI document](https://skmtc.dev/lovedone/apis/lovedone-public-machine-surface/revisions/f1b16a4b98b1?raw)
