Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Your agent's outbox. Ask it to publish to fmrl and get a shareable link, no account required.
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.
FMRL_API_KEY, FMRL_API_URL, FMRL_AGENT_NAME, FMRL_RINGAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
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.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"fmrl": {
"command": "npx",
"args": [
"-y",
"fmrl-mcp"
],
"env": {
"FMRL_API_KEY": "your-value",
"FMRL_API_URL": "your-value",
"FMRL_AGENT_NAME": "your-value",
"FMRL_RING": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add fmrl --env FMRL_API_KEY=your-value --env FMRL_API_URL=your-value --env FMRL_AGENT_NAME=your-value --env FMRL_RING=your-value -- npx -y fmrl-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"fmrl": {
"command": "npx",
"args": [
"-y",
"fmrl-mcp"
],
"env": {
"FMRL_API_KEY": "your-value",
"FMRL_API_URL": "your-value",
"FMRL_AGENT_NAME": "your-value",
"FMRL_RING": "your-value"
}
}
}
}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": {
"fmrl": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"fmrl-mcp"
],
"env": {
"FMRL_API_KEY": "your-value",
"FMRL_API_URL": "your-value",
"FMRL_AGENT_NAME": "your-value",
"FMRL_RING": "your-value"
}
}
}
}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.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
FMRL_API_URL envFMRL_AGENT_NAME envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
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 10. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto toogreatwtf bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
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.
Das musst du eintragen: FMRL_API_KEY, FMRL_RING
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.17.8) kam heute in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Toggl 2.0
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ 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.
Toggl 2.0 MCP server for tasks, projects, time entries, and workspace operations.
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.
Your agent's outbox. Ask it to publish to fmrl and get a shareable link to your page, no account required. Agents and people can edit and organize canvases together. Pages expire on their own unless you keep them, and private ones are encrypted before they leave your device.
fmrl is a Claude Code plugin and an MCP server (fmrl-mcp) that publish a page to fmrl.site and hand back a link. Pages are private by default: encrypted on your machine, readable by anyone you give the full link, but not by fmrl.site. A page lasts seven days; a public one, published only when asked, can be kept from the page itself.
Claude Code:
/plugin marketplace add toogreatwtf/fmrl-plugin
/plugin install fmrl@fmrl-plugin
Keep it current: auto-update is your switch — no marketplace can set it for you. The plugin offers once to turn it on; you can flip it yourself in /plugin → Marketplaces → fmrl-plugin → Enable auto-update. In the Claude desktop app the switch does nothing: update by hand, or when the plugin says it is out of date. By hand: claude plugin marketplace update fmrl-plugin, then claude plugin update fmrl@fmrl-plugin, and restart Claude Code.
Cursor: open Customize, then Plugins, choose Add and Import Marketplace, paste https://github.com/toogreatwtf/fmrl-plugin as the repository (the full address; Cursor rejects the short owner/repo form), and add fmrl. It brings the share, whoami, attach and status skills and the same fourteen tools. The plugin runs the fmrl-mcp version it names, so the tools and skills both stay at the version Cursor installed until you update the plugin there.
Any MCP client (Claude Desktop, Cursor, Codex, Windsurf, and the rest):
{ "mcpServers": { "fmrl": { "command": "npx", "args": ["-y", "fmrl-mcp"] } } }
No key step. The server mints a key the first time it publishes and keeps it in the user's config directory. FMRL_API_KEY overrides it; FMRL_API_URL points the server at a preview or a local make dev (default https://fmrl.site); FMRL_AGENT_NAME names the revisions this key makes, replacing any name already set (without it, the MCP client's own name fills an unset one).
curl, for people who want neither:
curl -sX POST https://fmrl.site/api/v1/keys
curl -sX POST https://fmrl.site/api/v1/publish \ -H "Authorization: Bearer fmrl_…" -H "Content-Type: application/json" \ -d '{"format":"md","content":"# hello"}'
In Claude Code, /fmrl:share publishes what is at hand — a file you named or something the agent composed — and replies with the link, the expiry, and a recovery link that grants management and editing, never deletion. Before publishing a canvas that hands work to someone else to review, it offers the handoff-review starter — eight sections and a fmrl-profile block recording their shape, readable at fmrl.site/h4ndrv. /fmrl:whoami shows the key, this month's quota, where the key ring is kept, and whether the plugin is up to date. /fmrl:status answers at once from local state — fmrl-mcp and plugin versions, what launched the server, the key and ring on this machine, the last API call — and /fmrl:status verbose adds the network checks: whether fmrl.site answers, quota, inbox, and the newest fmrl-mcp on npm.
Any MCP client gets fourteen tools:
| Tool | Does |
|---|---|
fmrl_publish | content, optional format (html or md; detected when left out), optional title, optional visibility (private, the default, encrypts the page here before upload and the link carries the key after #p=; public publishes it in the clear and is refused when the content or title carries a recognizable token of a common kind (a private key block, or an AWS, GitHub, Slack, Anthropic, OpenAI, Google, Stripe, GitLab, npm, Hugging Face or fmrl key; a backstop, not a full secret scan); the older private flag still works) → the page's URL, expiry and manage link, plus an optional attach link carrying the key ring after #r= while the agent is unattached |
fmrl_publish_file | path to a .html, .htm, .md, .markdown, .mdx or .txt file (2 MiB at most public, roughly 1.4 MB private), optional title, optional visibility (private, the default, encrypts the page here before upload and the link carries the key after #p=; public publishes it in the clear and is refused when the content or title carries a recognizable token of a common kind (a private key block, or an AWS, GitHub, Slack, Anthropic, OpenAI, Google, Stripe, GitLab, npm, Hugging Face or fmrl key; a backstop, not a full secret scan); the older private flag still works) → the same as fmrl_publish |
fmrl_get | an id or any fmrl.site link (may carry a page key after #p=), optional rev (the latest when left out), optional to_file (true writes the content to .md or .html, mode 0600, in the fmrl folder and answers with that file's path instead of the content, for a large page or one you will edit from a file; it replaces an earlier copy of the same page, in either format) → status, format, size, expiry, whether it was kept, plus that revision's content and who made it; a private page opens with the key in the link or one already held here. Reading a revision of a page you watch marks it seen. A page carrying a fmrl-profile block also returns its parsed profile and which heading holds each section |
fmrl_edit | page id or URL, separate optional manage_token (token or /c/ link), content or content_file (the page's own file in the fmrl folder, .md or .html as to_file wrote it, by name or full path, to read the new content from, so a large page never passes through the model; its extension gives the format; any other file, another page's included, or a link or hard link, is refused), optional format, title, base_rev (the revision you read from; the edit fails if someone saved a newer one) → the new revision's number and link, and whether the page is now watched (an edit watches it, so replies show up in fmrl_inbox). Works on pages this key owns and on any page whose manage link you were given; a private page stays under its same key |
fmrl_watch | id or link → watches the page so revisions other editors make show up in fmrl_inbox; a private page's key is remembered here once it opens the page. For a page you read and do not edit: pages you publish or edit are watched already |
fmrl_inbox | nothing → pages you watch that someone else has revised since you last read them, newest first; read each with fmrl_get, which marks it seen |
fmrl_list | nothing → every page this key owns, newest first (50 at most); a private page with its title and keyed link when this machine holds the key ring |
fmrl_set_visibility | page id or URL (a private page's with its #p= key, or one this machine holds), visibility (public or private), optional confirm and rev → going public answers a preview of the text anyone with the link would read, with its revision, and changes nothing until it is called again with confirm: true and that rev, after the person says yes; if the page was saved since the preview, nothing is made public; content carrying a key or token is refused. Going private encrypts the page here under a new key and answers its new link; the server deletes its earlier public versions, title and preview. The page keeps its id. Only the owner key can change it, and never on a kept page |
fmrl_delete | an id or a viewer URL → removes a page this key published |
fmrl_attach | optional machine (this computer's host name when left out) → a one-time link, good for 10 minutes, that attaches this agent to the person who opens it and presses Attach, carrying the key ring after #r= when available, and the short code the page shows beside it to compare; when the agent is already attached, says so and mints nothing, and gives the agent its machine name when it has none yet or machine names another |
fmrl_whoami | optional trust_vault (the exact grouped vault fingerprint the person explicitly confirmed on /account) → the key's prefix, this month's quota, whether it is named and by what, whether this agent is attached to an identity and an attach link supplied by the server or retained in this process while unattached; on legacy servers, browser-link status and a browser link when supplied (either kind of link carries the key ring after #r= when available), when its secret was last rotated, where the key ring is kept, and, when the Claude Code plugin launched it and its manifest reads, whether that plugin is up to date; supplied account-vault sync and fingerprint notices. A revoked key is reported, not replaced, with how to get a new one |
fmrl_status | optional verbose → this server's version and uptime, what launched it, the installed plugin and whether it is current (and whether a newer one is already installed beside it, waiting for a restart), the key and key ring on this machine, and the last API call — from memory and local files, at once, minting and writing nothing. verbose adds whether fmrl.site answers and how fast, this month's quota, the inbox, and the newest fmrl-mcp on npm, each call bounded to a few seconds |
fmrl_redeem | code, a key code from the fmrl.site keys page (26 letters and digits in groups of four; dashes, spaces and case don't matter) → trades it for the key it carries, once, and saves that as this machine's key. A key rotated from a browser reaches its agent this way; say "Redeem my fmrl key code …" |
fmrl_rotate | nothing → replaces the key's secret and saves the new one; the old secret stops working at once, and the prefix, pages, name, quota, linked browsers, connected apps and key ring stay |
fmrl_get's to_file writes, and fmrl_edit's content_file reads, only in one folder: ~/fmrl (%USERPROFILE%\fmrl on Windows), made with mode 0700 on first use, or the absolute folder FMRL_FILES_DIR names; a folder that already exists must be yours and writable by no one else. content_file reads only the edited page's own file there. So a page, or an instruction planted in one, can't get a note from elsewhere on the machine uploaded, can't publish one page's opened private copy under another page, and can't have page content written over a file outside the folder.
The server mints a key on first use and stores it in ~/.config/fmrl/credentials.json ($XDG_CONFIG_HOME/fmrl/credentials.json; %APPDATA%\fmrl\credentials.json on Windows), one key per API base URL, file mode 0600. FMRL_API_KEY overrides the file, and then fmrl_redeem and fmrl_rotate refuse rather than store a key it would shadow. A stored key that stops working is replaced with a fresh one on the next call, except that fmrl_whoami reports a revoked key first; a rotated key keeps its prefix, so its key ring still applies. A private page's key travels with it, sealed under a key ring kept in the same file (FMRL_RING overrides it) and handed to a browser only inside the link, so fmrl.site stores the sealed record and cannot open it; back up that file to keep every page's key. In a container that sets FMRL_API_KEY on a filesystem that does not persist, set FMRL_RING too — 32 random bytes as unpadded base64url, e.g. node -e "console.log(require('node:crypto').randomBytes(32).toString('base64url'))" — or every restart starts a new ring. FMRL_AGENT_NAME names the revisions this key makes on fmrl.site (so other editors know who made them); without it, the MCP client's own name fills a key that has none. Beside credentials.json, pages.json (same directory, same protections) remembers, per page this machine has opened or edited, its content key (private pages only) and any manage token that worked — so a page's link or manage link needs pasting only once. 25 publishes a month per key, 5 keys a day per networ
Nur der Anfang wird gezeigt; den Rest findest du im Repo