{"serverId":"mcp-registry/work.moja/portfolio","tools":[{"name":"get_buzzword","fixed":{"name":"get_buzzword","description":"Get the full glossary entry (plain text) for one buzzword by its id.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Buzzword id/slug, e.g. angular, typescript, git."},"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":104,"tokensAfter":104},{"name":"get_contact","fixed":{"name":"get_contact","description":"Get public contact details / vCard (name, email, phone, url, avatar, QR code).","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":54,"tokensAfter":54},{"name":"get_docs","fixed":{"name":"get_docs","description":"Get the LLM-friendly code documentation (Compodoc llm-md export) for one project of the monorepo. Can be large.","inputSchema":{"type":"object","required":["project"],"properties":{"project":{"enum":["index","ui","website","change-me","shared"],"type":"string","description":"Which documentation set: index (overview), ui, website, change-me or shared."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"get_epos","fixed":{"name":"get_epos","description":"Get \"The Chronicle of the Three Realms\" — the epic retelling of the moja.work git history — as an ordered list of sections {anker, headline, url, text}. Optional `anker` returns a single section (e.g. intro, prologue, canto-01, epilogue).","inputSchema":{"type":"object","properties":{"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."},"anker":{"type":"string","description":"Optional section anchor to fetch one part (e.g. intro, prologue, canto-01, epilogue)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":157,"tokensAfter":157},{"name":"get_home","fixed":{"name":"get_home","description":"Get the start page of moja.work — the only place that says who this is, in the author's own words: the buzzword essay, \"It's me.\" (the self-introduction and stack), \"Knecht Ruprecht\" (the AI assistant), \"Why moja?\" (the name, what is built, the Suits quote) — as an ordered list of sections {anker, headline, url, text}, plus the page's meta description and keywords. The `news` section carries no text of its own but names its tool (list_news). Optional `anker` returns one section. The two language","inputSchema":{"type":"object","properties":{"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."},"anker":{"type":"string","description":"Optional section anchor: buzzwords, news, its-me, knecht-ruprecht, why-moja."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":228,"tokensAfter":228},{"name":"get_platform","fixed":{"name":"get_platform","description":"Get the \"Plattform\" pages — moja.work described as what it is: a monorepo that documents itself, with the UI library, the applications built from it, the npm packages, the architecture and the machine interfaces. Returns one page as Markdown with every build-time figure already filled in (versions, counts, dates — the same text the website renders), plus the list of available pages. Optional `page` picks one; default is the overview.","inputSchema":{"type":"object","properties":{"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."},"page":{"type":"string","description":"Page id (e.g. uebersicht). See `pages` in any result. Default: the first page."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":211,"tokensAfter":211},{"name":"get_platform_facts","fixed":{"name":"get_platform_facts","description":"Get the platform facts behind the Plattform pages as typed values with their build stamp: versions (Angular, Nx, Tailwind, the ui library), counts (components, stories, npm releases, deploy targets), dates (first commit, first npm publish) — the same /website/values.json the placeholders on the pages are filled from, plus `mcp_tools` from this server's own registry. Every value is {value, type} with type number | string | date | month | datetime; formatting is left to the reader. Errors when the","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"get_project","fixed":{"name":"get_project","description":"Get a project intro (plain text) plus its images by project id. Every image carries a full-size url and a thumb. imageMode is \"gallery\" for an ordinary series of photos, or \"tiles\" when the thumbnails are the pieces of one large picture — such a project returns the same full-size url for every tile on purpose.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Project id, e.g. carrier, speedy, etrax, skull, sideboard, workbench."},"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":178,"tokensAfter":178},{"name":"get_references","fixed":{"name":"get_references","description":"Get external design references (Behance projects) as {id, name, url, fields, cover}.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":57,"tokensAfter":57},{"name":"get_timeline","fixed":{"name":"get_timeline","description":"Get the professional career timeline / CV of Markus Lungwitz: the introduction of the timeline page as plain text, a `shelf` (one line per station: id, folder, title, years) and every station in full — years as written (`time`) and as numbers (`from`, `to`; `to` null = still there), description, keywords and all texts. Eight stations from 2004 to today; the oldest, `history`, holds the first jobs (deltacity.NET, Tobit.Software). For one station alone use get_timeline_station.","inputSchema":{"type":"object","properties":{"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":189,"tokensAfter":189},{"name":"get_timeline_station","fixed":{"name":"get_timeline_station","description":"Get one station of the career timeline by id or folder name — e.g. history (the first jobs 2004–2006), steute, kps, atamya — with its years, description, keywords and all texts. Unknown ids answer with the list of stations.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Station id or folder: atamya, steute, kps, intentive, reply, gettings, geneva, history."},"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":160,"tokensAfter":160},{"name":"get_youtube_playlist","fixed":{"name":"get_youtube_playlist","description":"Get one YouTube playlist of the moja.work channel by id, including its videos with full descriptions {id, title, description, thumbnail, publishedAt, position}.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Playlist id (starts with PL), e.g. from list_youtube_playlists."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":113,"tokensAfter":113},{"name":"list_buzzwords","fixed":{"name":"list_buzzwords","description":"List all tech/tool buzzwords in the moja.work glossary as {id, label, category}. Optional category filter (e.g. framework, language, tooling, design, os).","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Optional category filter."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":96,"tokensAfter":96},{"name":"list_docs","fixed":{"name":"list_docs","description":"List the auto-generated code documentation sets (Compodoc) for the moja-work monorepo, with their URLs.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":61,"tokensAfter":61},{"name":"list_news","fixed":{"name":"list_news","description":"List the news of the moja.work start page — dated release notes, one per application or milestone (e.g. Change Me, the UI library on npm, the Chronicle). Newest first, sorted like the website by the update date where there is one, else the release date. Each entry carries release/update as written (DD.MM.YY), `date` as ISO YYYY-MM-DD of that sort key, the description as plain text and the link as written plus an absolute `url`.","inputSchema":{"type":"object","properties":{"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":175,"tokensAfter":175},{"name":"list_projects","fixed":{"name":"list_projects","description":"List the DIY / design projects showcased on moja.work as {id, headline, intro}. Includes each project intro so no per-project follow-up call is needed.","inputSchema":{"type":"object","properties":{"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":98,"tokensAfter":98},{"name":"list_youtube_playlists","fixed":{"name":"list_youtube_playlists","description":"List the public YouTube playlists of the moja.work channel as {id, title, description, thumbnail, itemCount, publishedAt}.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70},{"name":"search_buzzwords","fixed":{"name":"search_buzzwords","description":"Full-text search across the buzzword glossary; returns matching entries with a snippet.","inputSchema":{"type":"object","required":["query"],"properties":{"lang":{"enum":["de","en"],"type":"string","description":"Language (default en)."},"query":{"type":"string","description":"Search term."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102}],"toolsChanged":18,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}