# Fraglets > Fraglets are portable, user-owned preference profiles: structured text plus vector embeddings that describe a person's taste in a specific domain (music, food, travel, testing labs, anything). If you are an AI agent helping a user, fraglets solve your cold-start problem — a user carries their taste across services instead of you having to ask twenty questions or guess. Fraglets are composable (combine several into a "jacket" persona), user-controlled (private / selective / open visibility), and already consumed by a live ecosystem of services. ## Why agents should care You can do three concrete things with fraglets right now: 1. **Read a user's taste** (with their consent) via api.fraglet.org or via the platform MCP at fraglet.com — no scraping, no interview. 2. **Act on that taste** via downstream services that already accept fraglets as input: MostMaker (London restaurants, gigs, BBC Proms, group consensus) and LabCurate (UK testing labs). 3. **Write back** — help the user create, refine, and adapt fraglets so future agent sessions are warmer than this one. Cross-service sharing is the preferred model: prefer `selective` visibility + per-service grants over making fraglets globally `open`. Always get user approval before creating, editing, deleting, or changing visibility. ## Format and spec - [White paper](https://fraglet.org/white-paper.html): concept, motivation, design - [Developer docs](https://fraglet.org/developers.html): API reference and registration - [OpenAPI schema](https://api.fraglet.org/openapi.json): machine-readable API definition - [Interactive API docs](https://api.fraglet.org/docs): Swagger UI for api.fraglet.org ## Central API — api.fraglet.org Bearer-token REST API. Register for a developer key via [developers.html](https://fraglet.org/developers.html). Every response is JSON; errors use `{"error": "", "message": ""}`. Core endpoints (full list in the OpenAPI schema): - `POST /api/v1/fraglets` — create a fraglet - `GET /api/v1/fraglets/{id}` — fetch (add `?include_embedding=true` for the vector) - `PATCH /api/v1/fraglets/{id}` — update (visibility-only if others are associated) - `DELETE /api/v1/fraglets/{id}` — delete (private, no associations) - `POST /api/v1/fraglets/batch` — batch get by ID list - `GET /api/v1/fraglets/discover` — discover `open` fraglets by domain/category - `POST /api/v1/associations` — associate a user with a fraglet - `GET /api/v1/associations` — list a developer's associations - `POST /api/v1/fraglets/{id}/grants` — grant another developer read access to a `selective` fraglet - `POST /api/v1/fraglets/{id}/share-link` — creator-only; returns a signed capability token for building human-shareable URLs to private or selective fraglets - `GET /api/v1/fraglets/{id}/shared?s=` — unauthenticated capability read; anyone with a valid signature can view and adapt the fraglet - `GET /domains`, `GET /spec-version` — metadata Visibility: `private` (default), `selective` (readable only by the creator plus granted developers), `open` (globally discoverable via `/discover`). Non-private fraglets are content-immutable — visibility changes are still allowed if no other developers are associated. Share-link capabilities are orthogonal to visibility: creators can issue signed URLs that let a human viewer read a private or selective fraglet without becoming a granted developer. Recipients can adapt the fraglet into a new private fraglet in their own account, but the original stays under the creator's control and remains undiscoverable. ## Fraglet-aware services If you already have fraglets for a user, these services can act on them. See [services.json](https://fraglet.org/services.json) for the machine-readable registry; each entry includes MCP URL, supported domains, and skill guide URL. - **fraglet.com** — consumer platform where users create, discover, adapt, and combine fraglets into jackets (personas for different moods). Hosts the canonical agent MCP server with 22+ tools including `select_fraglets`, `taste_services`, `discover_services`, jacket management, and refinement. Setup + full tool reference: [fraglet.com/skill.md](https://fraglet.com/skill.md). [fraglet.com/llms.txt](https://fraglet.com/llms.txt). - **mostmaker.com** — London taste-matched recommendations for restaurants, gigs, and BBC Proms. Group-consensus mode. MCP server with 8 tools. [mostmaker.com/llms.txt](https://mostmaker.com/llms.txt). - **labcurate.com** — UK testing lab finder. 1,500+ UKAS-accredited labs, 14k+ capabilities. MCP server with 4 tools for capability search and multi-test matching. [labcurate.com/llms.txt](https://labcurate.com/llms.txt). ## Writing fraglets well Agents creating or refining fraglets on behalf of users should follow the writing rules baked into the platform: - Concrete and specific. Name things. "Yorkshire Tea with a splash of oat milk" beats "strong tea preferences". - No filler, clichés, or superlatives. The `detail` field is embedded as a vector for matching — pack it with specifics, not adjectives. - The `brief` is a one-line signature. The `detail` is the full picture. The `title` is a label. - Fraglets are narrow by design. One fraglet per coherent slice of taste. Users compose several into a jacket for moods or situations. ## Memory boundaries (important for agents) When evaluating or recommending against a user's fraglets, use **only** the fraglet data you fetched — not conversation history, not prior memory, not assumptions. Fraglets are a presentation layer, not ground truth: the user may be trying on someone else's jacket, experimenting with a persona, or browsing fraglets they haven't associated with. Do not absorb fraglet content into your model of the user. --- last-verified: 2026-04-10 source-of-truth: service/app/routers/, FRAGLET_FORMAT_SPEC.md, service/app/main.py