Why this is more than a data plugin
The value is the right compression at the right moment.
External AI systems do not need thousands of Clarity records. They need a small, reviewable answer for a specific purpose: what is realistic now? What failed to stick in learning this week? Which selected material helps with exactly that? The Context Graph condenses the question on the server and states which source types contributed.
- Get Clarity Now
- Combines an available time window, current constraints, learning focus and a non-clinical capacity band into exactly one realistic next step.
- Weekly Learning Loop
- Combines progress bands, recurring misunderstandings, due Studycards and selected materials into a small learning loop for the next week.
- Host-neutral
- The MCP contract is intended for ChatGPT, Claude, Gemini, Grok, Perplexity, Cursor and other MCP-capable hosts. Naming one is not a promise of provider approval.
- Read-only V1
- Public tools read derived Capsules only. No external assistant changes calendars, school, family, health, Notes or learning progress.
clarity-context-capsule/2.0
Small enough to reason about. Rich enough to help.
Every Capsule is limited to one use case, valid for no more than 15 minutes and includes a rationale for each source type. Stored text remains data and must never be executed as instructions to the model.
{
"contractVersion": "clarity-context-capsule/2.0",
"capsuleType": "purpose-bound-minimized-context",
"useCase": "clarity_now",
"contextId": "33333333-3333-4333-8333-333333333333",
"generatedAt": "2026-09-01T08:00:00.123456+00:00",
"expiresAt": "2026-09-01T08:15:00.123456+00:00",
"sourceUpdatedAt": "2026-09-01T07:59:00.123456+00:00",
"sources": [
{
"sourceKind": "schedule_window",
"sourceUpdatedAt": "2026-09-01T07:59:00.123456+00:00",
"whyReturned": "Defines the available time window without exposing event details."
},
{
"sourceKind": "learning_progress",
"sourceUpdatedAt": "2026-09-01T07:58:00.123456+00:00",
"whyReturned": "Identifies the active learning focus without grades or raw answers."
}
],
"payload": {
"kind": "clarity_now",
"availableWindow": {
"title": "Open focus window",
"startsAt": "2026-09-01T08:15:00.000Z",
"endsAt": "2026-09-01T09:00:00.000Z",
"availability": "available",
"availableMinutes": 45
},
"currentConstraints": [],
"learningFocus": {
"title": "Consolidate limits",
"subject": "Mathematics",
"progressBand": "developing",
"priority": "high",
"nextStep": "Explain the limit laws and solve two representative problems."
},
"capacityBand": null,
"nextMove": {
"title": "Run a 45-minute limits session",
"why": "It advances the active goal inside the current available window.",
"estimatedMinutes": 45,
"basedOnSourceKinds": ["schedule_window", "learning_progress"]
}
},
"exclusions": [
"raw-health-record",
"raw-minor-data",
"raw-third-party-data",
"raw-audio",
"raw-voice-transcript",
"raw-grade",
"raw-assessment-answer",
"raw-message",
"raw-journal",
"exact-location",
"participant-or-contact-identity",
"credential-or-secret",
"clinical-inference",
"advertising-profile",
"high-impact-decision-score",
"comprehensive-context-export"
],
"contentSafety": {
"untrustedUserContent": true,
"instructionsAllowed": false,
"storedTextIsDataOnly": true,
"comprehensiveInternalContextIsNotExport": true
}
}Consent categories
Twelve individually revocable boundaries.
- account.context.read
- Read the approved personal context ID and its connection status.
- schedule.summary.read
- Available time windows — not the complete calendar database.
- tasks.summary.read
- Minimised task situation, status, priority and due date.
- school.summary.read
- School work as a learning constraint, without school identities, grades or raw answers.
- teaching.summary.read
- Selected teaching plan as a phase and time requirement.
- learning.progress.read
- Progress band, focus and next learning step.
- studycards.summary.read
- Due concepts and memory band, not a card collection export.
- materials.read
- Only explicitly selected materials or sections.
- notes.insights.read
- User-confirmed insights, never a private notes dump.
- voice.insights.read
- Confirmed insights without audio, transcripts or other people's voices.
- capacity.summary.read
- Only an explicitly set, non-clinical workload preference; HealthKit, sleep, symptom and diagnostic inferences stay excluded.
- family.constraints.read
- Anonymous household constraints without names or third-party profiles.
Universal public floor
The most valuable boundaries are those no host can weaken.
- Verified adult direct owners and personal contexts only; minors and guardian, family and school delegation remain closed to the public channel.
- No raw-data dumps from health, family, school, private Notes, messages, contacts, location, payments, audio or transcripts.
- Providers are reviewed individually before activation. An OAuth client without an active review entry receives no Clarity grants.
- Projection data is created only through an attested Native Producer Lease, monotonically increasing revisions and a V2 projection valid for no more than 15 minutes.
- Disconnect revokes grants and admissions on the server; the global stop closes every external assistant for the account.
Release gates
No Connect button before evidenced operational readiness.
- 01
Legal release
Versioned privacy, use, AI and provider texts must be approved and confirmed in the backend through an active policy release ID.
- 02
Identity and attestation
Account Context Receipt, adult verification, Native Producer Lease and cross-owner negative tests must be demonstrated in staging.
- 03
OAuth and endpoint
Issuer, redirects, PKCE, discovery, Resource Metadata, DNS, TLS and distributed rate limits are verified at provider level — not claimed from source code.
- 04
Marketplace acceptance
Every provider has its own review and listing process. A prepared package is neither submitted nor accepted.
- 05
Operational acceptance
Staging migration, restore test, audit readback, incident path, revocation SLO and real host interoperability require separate acceptance.
