Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Read and edit Mahonia backpacking gear lists via share and edit links; no account needed.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://mahonia.app/mcpFühre das in deinem Terminal aus
claude mcp add --transport http mahonia https://mahonia.app/mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"mahonia": {
"url": "https://mahonia.app/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"mahonia": {
"type": "http",
"url": "https://mahonia.app/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://mahonia.app/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde über die Domain mahonia.app bestätigt (die Registry prüft, wem die Domain gehört)
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.0.0) kam vor 2 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Apify MCP Server
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
A gear-list and pack-weight tracker for hikers. Make a packing list, see what it weighs, share it.
Lists need no sign-up: one is yours the moment you start typing, held by a private unguessable link. The gear vault is the one part that asks for an account, because "the gear I own" has to follow you across devices rather than living in one browser.
32.5 oz on a gram list and that row keeps ounces while the total stays in grams.Requires Node 24 (the pinned version — see .nvmrc).
npm install
npm run seed # load the gear catalog into a local database npm run dev # http://localhost:3000
With no environment variables set, the app runs fully on your machine against a local PGlite database. Copy .env.example to .env to point at a real Postgres (Neon) and Redis (Upstash) for a production deploy.
Anything that would leave the machine degrades to the console instead of being skipped, so a fresh checkout is a working app rather than a broken one:
| Unset variable | What happens locally |
|---|---|
RESEND_API_KEY | Sign-in links print to the server console instead of being emailed. |
GITHUB_FEEDBACK_TOKEN / _REPO | "Send feedback" (in the editor's actions menu) prints to the console and reports back that it wasn't filed. |
Both fail loudly in production rather than quietly accepting input that goes nowhere.
Nuxt 4 · Vue 3 · TypeScript · Drizzle ORM · deployed on Vercel.
The app serves a remote MCP server at /mcp, so an AI assistant can be handed https://mahonia.app/mcp as a connector with nothing to install. Six tools, kept few on purpose so a connector shows a short permission list. Four need no sign-in: get_list reads a shared list as data or Markdown, search_catalog searches the cited gear catalog or returns one product's variants, create_list makes a list, and edit_list, holding an edit link, makes every change to an existing one in a single call: the list's title, dates and trail, its folders, new rows (into a folder, or nested under a group), changes to the rows already there (fields, folder, place, group, and the catalog link, relinked in place), and removals. Rows nest one level deep, as the site's groups do: get_list shows a group as a row with items, create_list takes the same shape, and edit_list nests a row under a parent by id. get_list gives every row and folder an id for those edits, and reads from an edit link too, by the share code in its address. A share code is the read capability and the edit link's fragment token the write one, hashed on arrival and passed only as a tool argument, so nothing new is trusted. The transport is stateless JSON-RPC over POST (MCP revisions 2025-06-18 and 2025-11-25, no sessions, no event stream, GET answers 405), hand-rolled in server/routes/mcp.post.ts with the tools in server/utils/mcp.ts; both files carry the reasoning.
Two more tools, and one more use of get_list, reach an account. get_list with no share code names the lists filed under it, each by its share code, so an assistant can open one without being handed a link, and with read-and-change access edit_list takes that share code in place of the edit link, resolved through the same claim the site uses when a signed-in owner edits a list, so the edit token still never leaves the server. get_my_gear and edit_my_gear read and change My Gear, and can link a piece to the catalog, as it is added or later. An account's lists and its gear belong to the account rather than a link, so these need the account behind the call, and there are two ways to give it. In Claude, add the URL as a connector and choose "Sign in when needed": the first call to an account tool shows a Connect card, you sign in to Mahonia with your passkey or a link, allow read or read-and-change, and the call goes through. That is OAuth 2.1 with Mahonia as its own authorization server (discovery under /.well-known, /authorize, /token, /revoke, /register; PKCE S256; Client ID Metadata Documents, so Claude registers nothing; hour-long access tokens with rotating refresh tokens; server/utils/oauth.ts and server/utils/oauthClients.ts carry the reasoning). A client configured from a file takes a token minted under Assistant access on /account instead, sent as Authorization: Bearer . Either way only hashes are stored, the credential reaches the account's filed lists and its gear and nothing more, and it lasts until it is revoked on that page or by "Sign out everywhere". With read-and-change, create_list also files the list it makes under the account, as a signed-in browser files the lists it creates, and reports saved_to_account.
The gate is at the door, as Claude requires: a tools/call naming an account tool with no valid bearer answers 401 with a WWW-Authenticate header that points at the discovery document and names the scope the tool needs, and a read-only bearer on a tool that changes gear or a list answers 403 with insufficient_scope. edit_list called with an edit link and get_list called with a share code are not account tools; the same tools without one are. initialize, tools/list and the four list tools never ask for a credential on their own, so a connector added with no sign-in works exactly as before.
Add it to a client:
claude mcp add --transport http --scope user mahonia https://mahonia.app/mcp, then /mcp to sign in when a gear tool asks, or add --header "Authorization: Bearer " to skip the sign-in with a token from /account (the page prints the line with your token in it).gemini mcp add --transport http mahonia https://mahonia.app/mcp (-H "Authorization: Bearer " for My Gear)https://mahonia.app/mcp with "No Authentication".{"mcpServers":{"mahonia":{"url":"https://mahonia.app/mcp"}}}, plus "headers":{"Authorization":"Bearer "} for My Gear.npx mcp-remote https://mahonia.app/mcp (--header "Authorization: Bearer " for My Gear).The server is listed in the official MCP registry as app.mahonia/mahonia; server.json is the listing, published with mcp-publisher under the domain's DNS proof.
The changelog is GitHub Releases: one release per day that ships something, tagged by date (v2026.09.12), cut by a workflow from the entries below. When a change is user-facing, add a plain one-sentence entry as part of the same PR:
npm run changelog -- --added "Sort folders by weight."
npm run changelog -- --fixed "…" --changed "…"
Entries are grouped Added / Changed / Fixed and describe the observable change, not the implementation.
Each run writes its own file under content/changelog.d/, so entries from PRs open at the same time never collide — content/changelog.json is the settled archive, and npm run changelog:compact folds fragments into it now and then. Once a day is over (Pacific), .github/workflows/releases.yml turns it into a release; a late entry updates its day's notes.
A PR comment reminds any user-facing PR that's missing an entry — but nothing auto-fills it, so the entry is always hand-written (plain, curated prose). If a PR merges without one, that day's release just omits the change until it's backfilled. For non-user-facing work, prefix the PR title (refactor:, chore:, ci:, test:, docs:, build:) or label it `skip-changelog` — perf: and style: don't count, since both are things a visitor notices.
Code is MIT. The gear catalog data under seed/ is licensed separately — see seed/LICENSE.md.
Third-party notices for the libraries bundled into the client are in public/licenses.txt, served at /licenses.txt. The file exists because Mahonia bundles its dependencies instead of loading them from a CDN (a CDN could read a list's edit token out of location.hash), which makes serving the site a redistribution of that code — and the minifier strips the banner comments those libraries ship their copyright in. Add an entry when a dependency's code starts reaching the browser; server-only packages aren't redistributed and aren't listed.