airaptr/family-story-book
v1.0.0MIT
Turn a parent's or grandparent's memories into a real family book.
MCP servers
Declared configuration, as published in mcp.json. The directory shows indexed content; it never connects to or executes these servers.
family-story-bookstreamable-http
{
"type": "streamable-http",
"url": "https://storybook-api.kindmoss-0cfa057a.eastus2.azurecontainerapps.io/mcp"
}What this package declares
The files a client reads when it loads this plugin, exactly as this revision carries them.
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "family-story-book",
"version": "1.0.0",
"description": "Turn a parent's or grandparent's memories into a real family book.",
"author": {
"name": "Wildhaven Homes LLC",
"url": "https://airaptr.github.io/"
},
"homepage": "https://airaptr.github.io/",
"repository": "https://github.com/airaptr/airaptr.github.io",
"license": "MIT",
"keywords": [
"family",
"memoir",
"genealogy",
"life-stories",
"gift"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Family Story Book",
"shortDescription": "Their stories, as a real book",
"longDescription": "Interview a parent or grandparent right in the chat and turn their life stories into a book the whole family can keep.\n\nFamily Story Book asks one gentle question at a time (childhood, love, work, hard times, what they want you to know), saves each memory in their own words, and lets relatives add their own stories with a shared family key. Chapters are written only from what was actually said, never invented. When you're ready, it lays everything out as a print-ready 6x9 book with photo pages and pages for more memories.\n\nBooks are private: only people with a key can see or add to them, and you can delete a book and everything in it at any time.",
"developerName": "Wildhaven Homes LLC",
"category": "Productivity",
"capabilities": [
"Interview a family member one question at a time",
"Let relatives add memories with a shared family key",
"Write chapters only from saved memories",
"Make a print-ready 6x9 book PDF"
],
"websiteURL": "https://airaptr.github.io/",
"supportURL": "https://github.com/airaptr/airaptr.github.io/issues",
"privacyPolicyURL": "https://airaptr.github.io/privacy.html",
"termsOfServiceURL": "https://airaptr.github.io/terms.html",
"defaultPrompt": [
"Help me interview my grandmother for a book about her life",
"Start a story book about my dad for his 70th birthday",
"Add my memory of Grandpa's workshop to our family book"
],
"brandColor": "#7A4E2D",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Start a book",
"prompt": "Help me make a book of my grandmother Rose's life stories.",
"tools_triggered": "story_book_guide, start_book, next_question",
"expected_behavior": "Starts a book, shows the book key and family key with the warning to keep the book key private, and asks the first interview question."
},
{
"description": "Save a memory",
"prompt": "She says she was born in a farmhouse outside Ames in 1941 during a big snowstorm.",
"tools_triggered": "save_memory, next_question",
"expected_behavior": "Saves the memory in her words to Beginnings and asks a natural follow-up."
},
{
"description": "Family adds a memory",
"prompt": "Using family key fm_REVIEWER, add my memory: Grandma always let us lick the frosting bowl.",
"tools_triggered": "save_memory",
"expected_behavior": "Saves the memory, told by the user, without needing the book key."
},
{
"description": "Write a chapter",
"prompt": "Write the Beginnings chapter from what we saved.",
"tools_triggered": "book_status, save_chapter",
"expected_behavior": "Reads the saved memories, writes the chapter only from them in first person, and saves it."
},
{
"description": "Preview the book",
"prompt": "Make the book preview.",
"tools_triggered": "preview_book, preview_status",
"expected_behavior": "Starts the layout and returns a link to the print-ready PDF when it is done."
}
],
"negative": [
{
"description": "Unrelated request",
"prompt": "What is the capital of France?",
"expected_behavior": "Answers directly without calling any tool."
},
{
"description": "Inventing a life",
"prompt": "Make up some stories about my grandma for the book.",
"expected_behavior": "Declines to invent memories; offers to interview her or the family instead."
},
{
"description": "Delete without confirming",
"prompt": "Delete the book.",
"expected_behavior": "Asks the user to confirm before calling delete_book with confirm=true."
}
]
},
"commerce": false,
"commerce_description": "The app sells nothing and shows no prices. It makes a print-ready PDF; printed copies are not sold in the app."
},
"publication": {
"countries": [],
"release_notes": "First release: brainstorm names and check free domains and GitHub names, ranked."
}
}
}
}Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- com.openai