Developer reference

Vela MCP tool documentation

Vela exposes a Model Context Protocol server so an assistant can act on behalf of a signed-in parent — reading their check-ins, screenings, and notices, and logging a new check-in. Everything below is generated from the live server manifest, so it stays in step with what is actually advertised.

Connection details

Server name
vela-support-from-the-start-for-every-family
Version
0.1.0
Endpoint
https://vela-maternity-care.lovable.app/mcp
Transport
Streamable HTTP (JSON-RPC 2.0)
Protected resource metadata
https://vela-maternity-care.lovable.app/.well-known/oauth-protected-resource
Machine-readable docs
https://vela-maternity-care.lovable.app/api/public/mcp-docs
{
  "mcpServers": {
    "vela": {
      "type": "http",
      "url": "https://vela-maternity-care.lovable.app/mcp"
    }
  }
}

Most clients (Claude, ChatGPT, Cursor, Codex) only need the URL — they discover authentication automatically and open a browser window for approval.

Cloud Shell quickstart

Running your agent from Cloud Shell (or any terminal)? Paste this in to set the environment, discover the authorization server, and confirm the tools your agent can reach.

# 1. Point your agent at Vela's MCP server
export VELA_MCP_URL="https://vela-maternity-care.lovable.app/mcp"
export VELA_MCP_METADATA="https://vela-maternity-care.lovable.app/.well-known/oauth-protected-resource"

# 2. Discover the authorization server (no token needed)
curl -s "$VELA_MCP_METADATA" | jq .

# 3. After the OAuth 2.1 + PKCE flow, export the parent's access token
export VELA_ACCESS_TOKEN="<paste access token>"

# 4. Verify the connection by listing the tools your agent can call
curl -s -X POST "$VELA_MCP_URL" \
  -H "Authorization: Bearer $VELA_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq .

Once the token is in place, this is the smallest client that hands Vela's tools to a model.

// npm i @ai-sdk/mcp
import { createMCPClient } from "@ai-sdk/mcp";

const client = await createMCPClient({
  transport: {
    type: "http",
    url: process.env.VELA_MCP_URL!,
    headers: { Authorization: `Bearer ${process.env.VELA_ACCESS_TOKEN}` },
    redirect: "error",
  },
});

const tools = await client.tools(); // pass into streamText/generateText
console.log(Object.keys(tools));
await client.close();

Keep the access token in an environment variable — never commit it, and never pass it into model context. Each token is scoped to one parent, so tools only ever see that family's data.

Authentication

Every tool call requires a parent's OAuth 2.1 access token. There are no API keys and no anonymous access.

  1. 1Call the endpoint without a token. It returns 401 with a WWW-Authenticate header pointing at https://vela-maternity-care.lovable.app/.well-known/oauth-protected-resource.
  2. 2Fetch that protected-resource metadata to find the authorization server: https://enhqroqlgayefzdfnhep.supabase.co/auth/v1.
  3. 3Register your client dynamically (RFC 7591) at the authorization server's registration endpoint, or reuse a registration you already hold.
  4. 4Run the authorization-code flow with PKCE. The parent signs in to Vela and lands on the in-app consent screen at https://vela-maternity-care.lovable.app/.lovable/oauth/consent, where they approve or deny your client by name.
  5. 5Send the resulting access token as Authorization: Bearer <token> on every request. Tools run as that parent and row-level security limits every query to their own family's data.

Tokens must carry the authenticated audience and an OAuth client claim. A session token copied out of the web app is rejected on purpose.

Tools

6 tools, generated from the manifest.

get_profile

read-onlyidempotent

Get parent profile

Read the signed-in parent's Vela profile: name, stage, due or birth date, and current focus areas.

Input schema

No arguments.

Example request

curl -X POST https://vela-maternity-care.lovable.app/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_profile","arguments":{}}}'

Example result

{"display_name":"Ashlee","stage":"postpartum","birth_date":"2026-06-02","focus_areas":["sleep","feeding","mood"]}

Scoped to the signed-in parent. There is no way to request another family's profile.

list_checkins

read-onlyidempotent

List daily check-ins

List the signed-in parent's recent daily check-ins (mood, sleep, feeding, notes), newest first.

Input schema

  • limit (integer) optionalHow many check-ins to return. Defaults to 14.

Example request

curl -X POST https://vela-maternity-care.lovable.app/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_checkins","arguments":{"limit":7}}}'

Example result

[{"logged_date":"2026-08-25","mood_score":2,"sleep_quality":"broken","feeding_status":"tough","note":"Long night."}]

Newest first. Defaults to 14 when limit is omitted.

log_checkin

writes data

Log a daily check-in

Save a daily check-in for the signed-in parent: mood (1-5), sleep quality, feeding status, and an optional note.

Input schema

  • mood_score (integer) requiredMood from 1 (heavy) to 5 (light).
  • sleep_quality (string) optionalShort sleep description, e.g. 'broken', 'ok', 'rested'.
  • feeding_status (string) optionalShort feeding description, e.g. 'smooth', 'tough'.
  • note (string) optionalAnything the parent wants to remember about today.
  • logged_date (string) optionalDate in YYYY-MM-DD. Defaults to today.

Example request

curl -X POST https://vela-maternity-care.lovable.app/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"log_checkin","arguments":{"mood_score":4,"sleep_quality":"ok","feeding_status":"smooth","note":"Short walk outside today.","logged_date":"2026-08-26"}}}'

Example result

{"id":"…","logged_date":"2026-08-26","mood_score":4}

The only writing tool. One check-in per parent per date — logging again for the same date updates that day.

list_screenings

read-onlyidempotent

List EPDS screenings

List the signed-in family's completed EPDS screenings with total score, date, and what prompted each one.

Input schema

No arguments.

Example request

curl -X POST https://vela-maternity-care.lovable.app/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_screenings","arguments":{"limit":5}}}'

Example result

[{"administered_at":"2026-08-01T10:12:00Z","total_score":11,"band":"elevated"}]

EPDS results are screening signals, not a diagnosis. Never present a band as a clinical conclusion.

list_alerts

read-onlyidempotent

List support notices

List the signed-in family's support notices (escalations) — what triggered each one and whether it's still open.

Input schema

No arguments.

Example request

curl -X POST https://vela-maternity-care.lovable.app/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_alerts","arguments":{}}}'

Example result

[{"id":"…","kind":"low_mood_streak","status":"open","created_at":"2026-08-25T09:00:00Z"}]

Support notices raised by Vela. Read-only; acknowledgement happens in the app.

list_education

read-onlyidempotent

List education modules

Browse Vela's fourth-trimester learning library. Optionally filter by week number or a keyword.

Input schema

  • week (integer) optionalOnly return modules for this postpartum week.
  • query (string) optionalKeyword to match against title, tags, and excerpt.

Example request

curl -X POST https://vela-maternity-care.lovable.app/mcp \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_education","arguments":{"week":3}}}'

Example result

[{"id":"w3-sleep-rhythms","week":3,"title":"Sleep and wake rhythms","minutes":4}]

Public learning library content. Not parent-specific.

Working with this data responsibly

Server instructions given to connecting assistants: Vela; Support from the Start for Every Family — v0.1.0.