← WebMCP Directory

Tool tree

keepsake-timeline.vercel.app

Media & PersonalTools verified
Website
An elder tells her stories; an agent turns them into memory cards on a shared timeline through WebMCP; the family reads, edits and asks the next question.
Explore capabilities
    get_timelineAnswer

    Read the whole timeline: the elder, the people in her life, every memory (id, year, title, story, people, place, tags) and the open questions to ask next time. Call this before adding or editing so you don't duplicate memories.

    View tool JSON
    {
      "name": "get_timeline",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the whole timeline: the elder, the people in her life, every memory (id, year, title, story, people, place, tags) and the open questions to ask next time. Call this before adding or editing so you don't duplicate memories.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    search_memoriesAnswer

    Find memories by keywords, by a person, and/or by a year range. Returns matching memories with their stories.

    View tool JSON
    {
      "name": "search_memories",
      "kind": "answer",
      "impl": "imperative",
      "description": "Find memories by keywords, by a person, and/or by a year range. Returns matching memories with their stories.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Keywords, e.g. 'dance Walter'."
          },
          "person": {
            "type": "string",
            "description": "Person name or id."
          },
          "from": {
            "type": "integer",
            "description": "Earliest year."
          },
          "to": {
            "type": "integer",
            "description": "Latest year."
          }
        }
      }
    }
    add_memoryAction

    Add a memory card to the timeline. Write the story in the teller's own voice and words (first person if the elder told it), keep the details they gave, and don't invent facts. Tag it with 2-4 simple words (e.g. 'dance', 'summer', 'car', 'love') so it gets a fitting picture.

    View tool JSON
    {
      "name": "add_memory",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a memory card to the timeline. Write the story in the teller's own voice and words (first person if the elder told it), keep the details they gave, and don't invent facts. Tag it with 2-4 simple words (e.g. 'dance', 'summer', 'car', 'love') so it gets a fitting picture.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Short evocative title, e.g. 'Roadside dance at Wasaga'."
          },
          "story": {
            "type": "string",
            "description": "The story, 1-4 sentences, in the teller's voice."
          },
          "year": {
            "type": "integer"
          },
          "month": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12
          },
          "people": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Names of people in the memory (new names are added to the family)."
          },
          "place": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "title",
          "story",
          "year"
        ]
      }
    }
    update_memoryAction

    Edit an existing memory: title, story, year/month, place, tags or people.

    View tool JSON
    {
      "name": "update_memory",
      "kind": "act",
      "impl": "imperative",
      "description": "Edit an existing memory: title, story, year/month, place, tags or people.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "memory": {
            "type": "string",
            "description": "Memory id or title."
          },
          "title": {
            "type": "string"
          },
          "story": {
            "type": "string"
          },
          "year": {
            "type": "integer"
          },
          "month": {
            "type": "integer"
          },
          "place": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "people": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "memory"
        ]
      }
    }
    remove_memorySensitive Action

    Delete a memory card. Only when clearly asked.

    View tool JSON
    {
      "name": "remove_memory",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a memory card. Only when clearly asked.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "memory": {
            "type": "string"
          }
        },
        "required": [
          "memory"
        ]
      }
    }
    add_personAction

    Add someone to the family circle (name, relation to the elder, optional birth year).

    View tool JSON
    {
      "name": "add_person",
      "kind": "act",
      "impl": "imperative",
      "description": "Add someone to the family circle (name, relation to the elder, optional birth year).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "relation": {
            "type": "string"
          },
          "born": {
            "type": "integer"
          }
        },
        "required": [
          "name",
          "relation"
        ]
      }
    }
    link_peopleAction

    Attach people to an existing memory.

    View tool JSON
    {
      "name": "link_people",
      "kind": "act",
      "impl": "imperative",
      "description": "Attach people to an existing memory.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "memory": {
            "type": "string"
          },
          "people": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "memory",
          "people"
        ]
      }
    }
    add_questionAction

    Queue a question to ask the elder next time, when a story leaves a thread untold (a name, a song, what happened next). These show up on everyone's screen as prompts for the next visit.

    View tool JSON
    {
      "name": "add_question",
      "kind": "act",
      "impl": "imperative",
      "description": "Queue a question to ask the elder next time, when a story leaves a thread untold (a name, a song, what happened next). These show up on everyone's screen as prompts for the next visit.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string"
          },
          "about": {
            "type": "string",
            "description": "Memory id or title it relates to."
          }
        },
        "required": [
          "question"
        ]
      }
    }
    mark_question_answeredAction

    Mark a queued question as answered (usually right after adding the memory that answers it).

    View tool JSON
    {
      "name": "mark_question_answered",
      "kind": "act",
      "impl": "imperative",
      "description": "Mark a queued question as answered (usually right after adding the memory that answers it).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "question": {
            "type": "string",
            "description": "Question id or a distinctive phrase from it."
          }
        },
        "required": [
          "question"
        ]
      }
    }
    focus_memoryAction

    Scroll the timeline to a memory and light it up, so the person you're talking to sees the card you mean.

    View tool JSON
    {
      "name": "focus_memory",
      "kind": "act",
      "impl": "imperative",
      "description": "Scroll the timeline to a memory and light it up, so the person you're talking to sees the card you mean.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "memory": {
            "type": "string"
          }
        },
        "required": [
          "memory"
        ]
      }
    }
    export_bookSensitive Action

    Return the whole timeline as a Markdown book, grouped by decade, ready to print or share.

    View tool JSON
    {
      "name": "export_book",
      "kind": "transact",
      "impl": "imperative",
      "description": "Return the whole timeline as a Markdown book, grouped by decade, ready to print or share.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }