Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Added "set_quest_objective_state"; changed the definition of "create_mnemon_relationship", "create_quest_mnemons", "describe_mnemon_types" and 2 more (62 tools before, 63 now)
⟨27 unchanged words⟩ itself — never send a per-edge override. All1416 labels: MEMBER (NPC ∈ Faction, mutual) ⟨36 unchanged words⟩ ), HAS_SUBQUEST (Quest → subquest Quest), QUEST_GIVER (Quest → the NPC who gives it), QUEST_LOCATION (Quest → the Location where it is given or set), QUEST_RELATED_NPC (Quest → NPC), QUEST_RELATED_LOCATION (Quest ⟨50 unchanged words⟩ memberNpcEntryIds / affiliationEntryIds on the NPC itself; forquestalinksquest's giver, location and parent prefersubQuestEntryIdsgiverId /relatedNpcEntryIdslocationId /relatedLocationEntryIdsparentQuestId on thequest.quest, which keep each to one link. Session-summary links have no array equivalent — the ⟨9 unchanged words⟩
⟨53 unchanged words⟩ PARENT_OF","CONTAINS","LOCATED_IN","HAS_SUBQUEST","QUEST_GIVER","QUEST_LOCATION","QUEST_RELATED_NPC","QUEST_RELATED_LOCATION","SESSION_ATTENDEE_CHARACTER","SESSION_ATTENDEE_NPC"," ⟨21 unchanged words⟩
Create Questmnemons.mnemons:questStatusaisheaderone(status, kind, playersCanTick, hook, and giverId / locationId / parentQuestId links) and a body ofactive|completed|failed.objectives (with sub-objectives), reward chips, a Markdown background and GM-only gmNotes. The server builds the quest the Argo app shows from these. Do not write objectives or rewards as Markdown; markdown alone becomes the Background. The retired quest board fields (steps, reward rows, issuer*, questStatus) are for quests the migration has not converted — see describe_mnemon_types.questBody. Players may not call this — GM/co-GM only.
⟨12 unchanged words⟩ items":{"additionalProperties":false,"properties":{"background":{"description":"The Background section, in Markdown.","type":"string"},"expiresAt":{"description":"Retired quest board field (
⟨108 unchanged words⟩ questBody":{"additionalProperties":false,"properties":{"rewardheader":{"additionalProperties":false,"properties":{"fields ⟨2 unchanged words⟩ :"string"},"type":"array"},"linkedStepIdsNoteskindValues":{"items":{"type":"string"},"type":"array"},"notes":{"type":"string"},"statusValues":{"items":{"type":"string"},"type":"array"}},"required":["fields","linkedStepIdsNotesstatusValues","kindValues","notes"],"type":"object"},"stepobjective":{"additionalProperties":false,"properties":{"fields ⟨2 unchanged words⟩ :"string"},"type":"array"},"statusDefaultnotes":{"type":"string"},"statusValuesstateValues":{"items":{"type":"string"},"type":"array"}},"stepIdNotes
⟨7 unchanged words⟩ mnemon entry (title, blocks, type properties). For a quest, `quest` holds its status, kind, playersCanTick, objectives and reward chips (with their ids), progress and reward totals, as the current user may see them — read objectives and rewards there, not from blocks.
⟨42 unchanged words⟩ ,"entryId":{"type":"string"},"quest":{"additionalProperties":false,"description":"Quests only: status, kind, objectives, reward chips and progress as this user may see them.","properties":{"kind":{"description":"Main | Side | Personal.","type":"string"},"objectives":{"items":{"additionalProperties":false,"properties":{"depth":{"description":"0 for a top-level objective.","type":"number"},"hidden":{"description":"GM reads only: true when players cannot see it.","type":"boolean"},"id":{"description":"Name it in set_quest_objective_state or update_quest_mnemons.","type":"string"},"optional":{"type":"boolean"},"parentId":{"type":"string"},"state":{"description":"open | done | failed.","type":"string"},"text":{"type":"string"}},"required":["text","state","optional","depth"],"type":"object"},"type":"array"},"playersCanTick":{"type":"boolean"},"progress":{"additionalProperties":false,"description":"Required objectives done of those this user can see; optional and failed ones do not count.","properties":{"done":{"type":"number"},"total":{"type":"number"}},"required":["done","total"],"type":"object"},"rewardTotals":{"additionalProperties":false,"properties":{"currency":{"items":{"additionalProperties":false,"properties":{"amount":{"type":"number"},"unit":{"type":"string"},"unitLabel":{"type":"string"}},"type":"object"},"type":"array"},"xp":{"type":["number","null"]}},"required":["currency"],"type":"object"},"rewards":{"items":{"additionalProperties":false,"properties":{"amount":{"type":"number"},"entryId":{"type":"string"},"hidden":{"type":"boolean"},"id":{"type":"string"},"kind":{"description":"currency | xp | item | other.","type":"string"},"label":{"type":"string"},"ruleEntryId":{"type":"string"},"unit":{"type":"string"},"unitLabel":{"type":"string"}},"required":["kind"],"type":"object"},"type":"array"},"status":{"description":"Available | Active | Completed | Failed.","type":"string"}},"required":["status","kind","playersCanTick"],"type":"object"},"
Updatetyped/metaQuestfieldsmnemons.ofAQuestfieldmnemonsleft(out is left as it is: status,transitionskind,expiryplayersCanTick,relatedhook,entriesthe giverId / locationId / parentQuestId links (an empty string removes one)., and objectives, rewards, background or gmNotes, each of which replaces its part of the quest and keeps the rest. Name existing objectives and chips by the ids get_mnemon's `quest` returns so they keep what the GM wrote under them. To tick one objective, use set_quest_objective_state.
Set quest objective state — Tick, fail or reopen one objective of a quest by its id (get_mnemon's quest.objectives[].id), at any depth, without rewriting the quest. A GM sets any state. A player may only tick an objective they can see done, or undo that, and only while the quest's playersCanTick is on. Returns the quest as get_mnemon shows it, its progress recounted.
Certificate recorded, valid to 2026-11-17
Authorization not required
First tool surface recorded: 62 tools (server version 1.1.0)
Showing the latest 4 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨12 unchanged words⟩ items":{"additionalProperties":false,"properties":{"background":{"description":"Replaces the Background section, in Markdown.","type":"string"},"entryId":{"description":"Mnemon entry id ( ⟨6 unchanged words⟩ ,"type":"string"},"expiresAt":{"description":"Retired quest board field (ISO-8601).","type":"string"},"giverId":{"description":"Who gives the quest: an NPC's entryId or exact title (its Quest giver link). On update an empty string removes it.","type":"string"},"gmNotes":{"description":"Replaces the GM-only notes, in Markdown.","type":"string"},"hook":{"description":"The one line players see under the title in the quest log. An empty string clears it.","type":"string"},"issuerNpcEntryId":{"description":"Retired quest board field: send giverId.","type":"string"},"issuerText":{"description":"Retired quest board field: write it into background.","type":"string"},"kind":{"description":"Main | Side | Personal. Reads as Side when unset.","enum":["Main","Side","Personal"],"type":"string"},"locationId":{"description":"Where the quest is given or set: a Location's entryId or exact title. On update an empty string removes it.","type":"string"},"objectives":{"description":"Replaces the objective list. Name an existing objective by id to keep it and what the GM wrote under it; one left out is removed. To tick one objective, use set_quest_objective_state instead.","items":{"additionalProperties":false,"properties":{"children":{"description":"Its sub-objectives, in order. Omitted keeps the ones it has; an empty list removes them.","items":{"additionalProperties":false,"properties":{"hidden":{"description":"true hides it from players, false shows it; omitted keeps what it has (a new one is shown).","type":"boolean"},"id":{"description":"The objective to rewrite, as get_mnemon's quest.objectives[].id names it. Omit for a new objective.","type":"string"},"optional":{"description":"An optional objective does not count toward the quest's progress. Defaults to false.","type":"boolean"},"state":{"description":"open (the default), done or failed.","enum":["open","done","failed"],"type":"string"},"text":{"description":"The objective, one line of Markdown. Mentions: @[label](mnemon:<entryId>).","minLength":1,"type":"string"}},"required":["text"],"type":"object"},"type":"array"},"hidden":{"description":"true hides it from players, false shows it; omitted keeps what it has (a new one is shown).","type":"boolean"},"id":{"description":"The objective to rewrite, as get_mnemon's quest.objectives[].id names it. Omit for a new objective.","type":"string"},"optional":{"description":"An optional objective does not count toward the quest's progress. Defaults to false.","type":"boolean"},"state":{"description":"open (the default), done or failed.","enum":["open","done","failed"],"type":"string"},"text":{"description":"The objective, one line of Markdown. Mentions: @[label](mnemon:<entryId>).","minLength":1,"type":"string"}},"required":["text"],"type":"object"},"type":"array"},"parentQuestId":{"description":"The quest this one belongs to: a Quest's entryId or exact title. On update an empty string removes it.","type":"string"},"playersCanTick":{"description":"Whether players may tick the objectives they can see. Off by default.","type":"boolean"},"questStatus":{"description":"Retired: send status.","type":"string"},"relatedLocationEntryIds":{"description":"Locations the quest involves (entryIds or titles).","items":{"type":"string"},"type":"array"},"relatedNpcEntryIds":{"description":"NPCs the quest involves (entryIds or titles).","items":{"type":"string"},"type":"array"},"repeatable":{"description":"Retired quest board field.","type":"boolean"},"rewards":{"description":"IfReplacespresent,thereplacesrewardthechips;entireanrewardsemptylist.list clears them. Name an existing chip by id to keep it.","items":{"additionalProperties":false,"properties":{"amount":{"description":"NumericHowamountmany: coins, experience points, a stack.","type":"number"},"entryId":{"description":"item chips: the mnemon entry it links to (entryId or exact title). Not with ruleEntryId.","type":"string"},"hidden":{"description":"true hides the chip from players, false shows it; omitted keeps what it has (a new one is shown).","type":"boolean"},"id":{"description":"The chip to rewrite, as get_mnemon's quest.rewards[].id names it. Omit forstack-likearewards.new chip.","type":"integerstring"},"itemId":{"description":"OptionalRetiredreferencerewardtorow:ana free-text itementry.reference.","type":"string"},"labelkind":{"description":"Displaycurrency | xp | item | other. Makes this a reward chip — send it on every reward.","enum":["currency","xp","item","other"],"type":"string"},"label":{"description":"What(e.g.the'100chipgp'says: an item's name,'Ancientamap').favour, a title.","type":"string"},"linkedStepIds":{"description":"Retired reward row: the stepIdsand/oror subquest entry idswhose completion unlocksthatthisunlockreward.it.","items":{"type":"string"},"type":"array"},"notes":{"description":"Retired reward row: notes.","type":"string"},"rewardType":{"description":"BucketRetired reward row, without kind: Gold | Item | XP | Reputation|…","type":"string"},"ruleEntryId":{"description":"itemetc.chips: the rules-library entry it links to. Not with entryId.","type":"string"},"unit":{"description":"currency chips: the coin, as the campaign's setting names it (e.g. coin.gp), or free text such as 'gold'.","type":"string"},"unitLabel":{"description":"How the coin reads, e.g. 'Gold piece'.","type":"string"}},"type":"object"},"type":"array"},"stepsstatus":{"description":"IfAvailablepresent,|replacesActivethe|entireCompleted | Failed. Reads as Available when unset.","enum":["Available","Active","Completed","Failed"],"type":"string"},"steps":{"description":"Retired:list.theOmitoldtoquestleaveboard's steps,untouched.for quests the migration has not converted. Send objectives.","items":{"additionalProperties":false,"properties" ⟨105 unchanged words⟩ },"type":"array"},"subQuestEntryIds":{"description":"This quest's subquests (entryIds or titles). Prefer parentQuestId on each subquest.","items":{"type":"string"},"type ⟨32 unchanged words⟩