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.
Certificate changed, valid to 2027-01-21
Changed the definition of "browse_books", "get_usage", "list_books" and 3 more
⟨33 unchanged words⟩ {"type":"boolean"},"nextCursor":{"anyOf":[{"type":["string"},{"type":"null"}]},"total":{"type":"number"} ⟨4 unchanged words⟩
⟨18 unchanged words⟩ {"type":"number"},"remaining":{"anyOf":[{"type":["number"},{"type":"null"}]},"resetAt":{"anyOf":[{"type":["string"},{"type":"null"}]},"usagePeriod":{"type":"string"} ⟨22 unchanged words⟩
⟨33 unchanged words⟩ {"type":"boolean"},"nextCursor":{"anyOf":[{"type":["string"},{"type":"null"}]},"total":{"type":"number"} ⟨4 unchanged words⟩
⟨7 unchanged words⟩ {"type":"boolean"},"nextCursor":{"anyOf":[{"type":["string"},{"type":"null"}]},"total":{"type":"number"} ⟨39 unchanged words⟩
⟨51 unchanged words⟩ {"type":"boolean"},"nextOffset":{"anyOf":[{"type":["number"},{"type":"null"}]},"offset":{"type":"number"} ⟨14 unchanged words⟩
⟨23 unchanged words⟩ {"type":"boolean"},"nextCursor":{"anyOf":[{"type":["string"},{"type":"null"}]},"scanned":{"type":"number"} ⟨21 unchanged words⟩
Changed the definition of "compose_entry", "create_entry" and "save_entry"
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨20 unchanged words⟩ string opens a blank composer.","maxLength":500050000,"type":"string"},"suggestedMood":{" ⟨30 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨10 unchanged words⟩ save as a journal entry.","maxLength":500050000
Changed the definition of "generate_track" and "update_audio_preferences"
⟨95 unchanged words⟩ unset. For an explicit song request, set`audioContentType`audioType:"song"` so a saved spoken-audio default ⟨189 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"audioContentTypeaudioPreferenceProfileId":{"description":"Optional ID of one of the user's saved sound profiles. Call list_audio_preference_profiles first when the user asks to use a named saved sound; this applies that profile only to this song.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"audioType":{"description":"Set song explicitly for a song request; omit ⟨46 unchanged words⟩
Added "correct_insight", "get_entry", "get_track" and 4 more; changed the definition of "browse_books", "compose_entry", "create_entry" and 9 more (16 tools before, 23 now)
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"cursor":{"maxLength":1000,"type":"string"},"language":{"description":"ISO language code to ⟨55 unchanged words⟩
⟨28 unchanged words⟩ type":"object"},"type":"array"},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"total":{"type":"number"}},"required":["books"],"type":"object"}
Added "create_entry"; changed the definition of "generate_track", "get_capabilities", "get_profile" and 1 more (15 tools before, 16 now)
⟨88 unchanged words⟩ style fields are advanced overrides best left unset. For an explicit song request, set `audioContentType:"song"` so a saved spoken-audio default does not change the requested format. • FROM A JOURNAL ENTRY: to "turn ⟨37 unchanged words⟩ the lyrics — `topic` is then optional. •BEYONDCONTENTSONGSFORMAT:this also makes spoken / non-song audiouse—"song"setfor`audioContentType`:musica
Authorization required → not required
First tool surface recorded: 15 tools (server version 1.1.0)
Authorization required, Bearer, issuer https://mcp.aiponge.com/
Authorization required, Bearer, issuer https://mcp.aiponge.com/
Authorization required, Bearer, issuer https://mcp.aiponge.com/
Authorization required, Bearer, issuer https://mcp.aiponge.com/
Certificate recorded, valid to 2026-11-23
Authorization required, Bearer, issuer https://mcp.aiponge.com/
Showing the latest 14 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨8 unchanged words⟩ ":"boolean"},"content":{"maxLength":500050000,"minLength":1,"type":"string"}, ⟨46 unchanged words⟩
⟨24 unchanged words⟩ "maxItems":20,"type":"array"},"audioContentTypeaudioType":{"description":"Saved default audio preference. ⟨15 unchanged words⟩ app workflow.","enum":["song","guidedmeditation","atmosphereinstrumental"],"type":"string"},"genre": ⟨104 unchanged words⟩
⟨95 unchanged words⟩ (or "" for a blank composer).OnlyInfallclientsbackwithouttopanels,create_entryshow the draft and wait forsilentexplicitsavesconfirmation,orthenbulkuseimports.save_entry with a stable operationId.
⟨108 unchanged words⟩ "maxLength":200,"type":"string"},"operationId":{"description":"Stable operation ID for a panel save retry.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"sensitivity":{"description":"Suggested values: normal, ⟨100 unchanged words⟩
⟨250 unchanged words⟩ saved preferences.","type":"string"},"operationId":{"description":"Caller-owned UUID for this creation. Reuse it only for a retry of the same request, including after reconnecting.","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"songMode":{"description":"Canonical song mode; defaults ⟨399 unchanged words⟩
⟨87 unchanged words⟩ toolCounts":{"additionalProperties":false,"properties":{"appOnly":{"type":"number"},"availableStandard":{"type":"number"},"default":{"type":"number"},"discovery":{"type":"number"},"librarian":{"type":"number"},"totalRegistered":{"type":"number"}},"required":["default","availableStandard","librarian","discovery","appOnly","totalRegistered"],"type":"object"},"workflows": ⟨69 unchanged words⟩
Surface what aiponge has NOTICED about the user—: the observations, recurring patterns, and wellness signal ⟨74 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"cursor":{"maxLength":1000,"type":"string"},"limit":{"exclusiveMinimum":0,"maximum":9007199254740991, ⟨11 unchanged words⟩
⟨28 unchanged words⟩ type":"object"},"type":"array"},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"total":{"type":"number"}},"required":["books"],"type":"object"}
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"cursor":{"description":"Use nextCursor from the preceding result; do not invent it.","type":"string"},"limit":{"exclusiveMinimum":0,"maximum":9007199254740991, ⟨4 unchanged words⟩ ":9007199254740991,"minimum":0,"type":"integer"},"query":{"description":"Search saved songs by title, themes or inspiration.","maxLength":200,"type":"string"}},"type":"object"}
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"total":{"type":"number"},"tracks":{"items":{"additionalProperties":false," ⟨35 unchanged words⟩
⟨18 unchanged words⟩ ","minLength":1,"type":"string"},"chapterLimit":{"description":"Bound the chapters returned. Omit with chapterOffset for the full interactive book.","maximum":20,"minimum":1,"type":"integer"},"chapterOffset":{"description":"Zero-based first chapter to read.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["bookId"],"type":"object"}
⟨37 unchanged words⟩ Resolve the bookId via browse_books or list_books first. Set chapterOffset and chapterLimit for a bounded chapter read. To LISTEN to it as narrated audio instead, use play_audiobook.
⟨18 unchanged words⟩ ","minLength":1,"type":"string"},"chapterLimit":{"description":"Bound the chapters returned. Omit with chapterOffset for the full interactive book.","maximum":20,"minimum":1,"type":"integer"},"chapterOffset":{"description":"Zero-based first chapter to read.","maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["bookId"],"type":"object"}
⟨43 unchanged words⟩ ":["chapters"],"type":"object"},"chapterPage":{"additionalProperties":false,"properties":{"hasMore":{"type":"boolean"},"nextOffset":{"anyOf":[{"type":"number"},{"type":"null"}]},"offset":{"type":"number"},"total":{"type":"number"}},"required":["offset","total","hasMore","nextOffset"],"type":"object"}},"required":["book"],"type":"object"}
Find / search /Searchlooktheupuser-owned journalentriesbyawordskeyword,intag,anydatesupportedrangelanguage,locationtag,sourceMemoryId,personalsourceTypedate, orsensitivity — "did I write anything about my trip?",import"entriessource.fromReturnslastmatchingJune",entry"showIDsentriesandtaggedshortwork".excerpts. Usethis (not list_entries) whenever the user wants entriesget_entrymatchingforafullquerytext.ratherFollowthannextCursorjustwiththeidenticalmostfiltersrecent.untilRankshasMoreboundediscandidatesfalse beforereturning results; structuredContent.truncatedclaimingistheretrueareifnotheoldernewestmatches.5000totalcandidatescountsmayonlynotthiscoverresponse.everyJournalentry.resolutionPasserrorssourceMemoryIddobeforenotimportingbroadeninventorythememoriessearch toavoidotherduplicates.books.
{"$schema":"http://json-schema.org/draft-07/schema#","properties":{"cursor":{"description":"Continuation from a previous search; keep the same filters.","maxLength":300,"type":"string"},"fromDate":{"type":"string"},"includeAllBooks" ⟨105 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"candidateLimitduplicateSourceMemoryId":{"exclusiveMinimumtype":0"boolean"},"maximumentries":9007199254740991{"items":{"additionalProperties":{},"propertyNames":{"type":"integerstring"},"duplicateSourceMemoryIdtype":{"object"},"type":"booleanarray"},"entrieshasMore":{"itemstype":{"additionalPropertiesboolean"},"journalExists"
⟨27 unchanged words⟩ :"array"},"audioContentType":{"description":"Default kindSavedofdefault audiotopreference.create:MCPsong,generationguidedcurrentlymeditation,supportsorsong and atmosphere.Spoken-wordGuidedreflectioncontent isretired.available only through its separate app workflow.","enum":["song","guided"," ⟨108 unchanged words⟩
Correct a reflection theme — Record the user's explicit correction to a specific inferred dimension/value they have seen in aiponge. Do not invent a dimension or value, and do not treat this as a diagnosis. Use only when the user confirms the correction. The backend validates the canonical dimension and reaction.
Read one journal entry — Open / read the full text of ONE specific journal entry by its id. Resolve the id via list_entries or search_entries first; never invent an entry id.
Read a song and its source — Read the lyrics, source entry ID and context of a saved song. Use a real trackId from list_tracks or generation. Does not start playback.
Check remaining creation allowance — Read available account allowances and reset time before planning creation. This is advisory; the server still reserves usage atomically. Unavailable counters are identified explicitly; do not assume their remaining allowance.
Recover active song creations — Find the account's active song generation requests after reconnecting or losing a requestId. Inspect them before retrying generation. Completed songs can be found with list_tracks.
Save an explicitly reviewed reflection — For clients without a journal panel: save the exact reflection the user has reviewed and explicitly confirmed. Never set confirmed from silence or inferred intent. Use compose_entry to prepare a draft; show it to the user, then save only after confirmation. Reuse operationId for retries of the same text. In interactive ChatGPT, prefer the journal panel Save action.
Record how a song felt to you — Record only explicit user feedback on a saved song: understood, partial or missed. Never infer recognition or helpfulness from playback. Replaces the user's previous feedback for this song. Resolve trackId first.
⟨3 unchanged words⟩ ,"properties":{"audioContentType":{"description":"Optional contentSettype;songomitexplicitly for anormal song. 'guided' = guided meditation, visualization,songbreathwork,request;oromitcoaching;only'reflection'when=theauserspokenwantsreflection,theirstory,savedordefaultaudiocontentessay;type. 'atmosphere' = an instrumental / ambient / focus / sleep soundscape with no lyrics; 'song'(default)= music with lyrics (an affirmation is a song).MapThe'meditation'legacy→'guided'guided,and'instrumental'/'ambient''reflection'→valuesatmosphere,are'narration'/'essay'unavailable→throughreflection.the current music provider.","enum":["song","reflection","guided","atmosphere"],"type":"string"}, ⟨592 unchanged words⟩
⟨9 unchanged words⟩ account/role requirements, and UI panel capabilities. Use only to choose tools for supported reflection, journal, music, or book requests. Do not call thiswhenorunsureanywhichaiponge tool for account deletion, unrelated local search such as restaurants, or invitations and group membership. For account deletion, direct the user tocall.aiponge account settings or support. For invitations or group membership, direct the user to the aiponge App. Handle unrelated requests without aiponge. These exclusions are already known; do not look them up.
Show the user's account profile and saved settings—: "what's on my profile?", "whatare my music/audio preferences?", "whatlanguage am I set to?", "my account settings". Returnstheiraccountwellnessdetails, profile,includinggeneralthepreferences,savedandaudioactivitypreferencescounts,(including saved song genre, vocals,language,and instruments)thatwhengenerate_trackconfigured.appliesUnsetautomatically.preference fields may be absent; do not infer values for missing fields. Use list_audio_preference_profiles to select a named saved sound for generation. Read-only.(To learn what aiponge hasNOTICED about the usernoticed fromtheirreflections,—including themes,and patterns,their story —use get_insights instead.)
⟨24 unchanged words⟩ language, instruments, default audio content type).Only theSupplied fieldsyoureplacepasstheiraresavedchanged;defaultsthewithoutrestanofundotheirhistory;preferencesomitted fields are preserved. Use this when the user wants ⟨39 unchanged words⟩
⟨30 unchanged words⟩ Default kind of audio to create: song,reflection,guided meditation, or atmosphere. Spoken-word reflection is retired.","enum":["song","reflection","guided","atmosphere"],"type":" ⟨106 unchanged words⟩
{"destructiveHint":falsetrue,"openWorldHint":false,"readOnlyHint":false}
Save a journal entry silently (import only) — Persist a journal entry DIRECTLY to the journal, with NO review step. This is the silent/import-only path — for an ordinary chat request like "save this as a journal entry" / "journal this" / "add a journal entry", do NOT use this; use `compose_entry`, which opens an editable composer the user confirms. Reach for `create_entry` ONLY for silent/automated saves: structured memory-inventory imports, or when the user explicitly asks to save without reviewing. `content` is the only required field. For imports, include entryDate, entryDateDisplay, location, sourceMemoryId, sourceSection, sourceTitl…