GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Beschreibung vom Entwickler (englisches Original)
Deploy a multi-user web app from your agent: hosting, auth, database, and permissions.
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.
HOMESPUN_API_KEY, HOMESPUN_URL, HOMESPUN_AGENT_NAME, HOMESPUN_REGISTER_SECRETAls 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.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://homespun.dev/mcpÖffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"homespun": {
"command": "npx",
"args": [
"-y",
"@homespunapps/mcp"
],
"env": {
"HOMESPUN_API_KEY": "your-value",
"HOMESPUN_URL": "your-value",
"HOMESPUN_AGENT_NAME": "your-value",
"HOMESPUN_REGISTER_SECRET": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http homespun https://homespun.dev/mcpclaude mcp add homespun --env HOMESPUN_API_KEY=your-value --env HOMESPUN_URL=your-value --env HOMESPUN_AGENT_NAME=your-value --env HOMESPUN_REGISTER_SECRET=your-value -- npx -y @homespunapps/mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"homespun": {
"url": "https://homespun.dev/mcp"
}
}
}In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"homespun": {
"command": "npx",
"args": [
"-y",
"@homespunapps/mcp"
],
"env": {
"HOMESPUN_API_KEY": "your-value",
"HOMESPUN_URL": "your-value",
"HOMESPUN_AGENT_NAME": "your-value",
"HOMESPUN_REGISTER_SECRET": "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": {
"homespun": {
"type": "http",
"url": "https://homespun.dev/mcp"
}
}
}In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"homespun": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@homespunapps/mcp"
],
"env": {
"HOMESPUN_API_KEY": "your-value",
"HOMESPUN_URL": "your-value",
"HOMESPUN_AGENT_NAME": "your-value",
"HOMESPUN_REGISTER_SECRET": "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.
ChatGPT verbindet sich nur mit Servern im Internet:
https://homespun.dev/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.
HOMESPUN_URL envHOMESPUN_AGENT_NAME envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 7. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
document_uploadCreate a short-lived, byte-scoped upload session for an HTML document authored in a native editor or shell. The caller supplies the exact UTF-8 byte length and SHA-256 hex digest as { size, sha256, app_id? }. The returned `upload_url` accepts a PUT of those raw UTF-8 bytes with `
deploy_appDeploy a v2 app: an HTML document plus a capability manifest, hosted at its own URL. For sandbox-authored files in hosted chat, native file editing and shell tools can create and validate the document. Its UTF-8 byte length and SHA-256 go to `document_upload`; the exact raw bytes
list_rowsList rows in a v2 app's mutable collection. This is also how a collection's current state is polled, since MCP has no streaming: pass the prior next_cursor as `since` to fetch only rows that are new or changed. Returns { rows, next_cursor, has_more }.
count_rowsThe live row count of a v2 app's collection (spec B4, issue #1056), a whole-scope total with no filter and no paging. Gated by the collection's countRead opt-in, independent of its read list: a collection that opted in returns its count even to a caller who cannot list the rows (
get_rowFetch a single row by its key from a v2 app collection, through a dedicated relay route rather than a client-side scan. Returns { row }, or an isError row_not_found.
add_rowCreate a row in a v2 app's collection, or return the existing row when `key` is already present (deduped:true). Row creation goes through this tool; there is no separate strict-create verb. Omit `key` to add a new row with a server-generated key, or pass `key` to ensure a row exi
update_rowUpdate an existing row in a v2 app's collection, replacing its data. Gated by the collection's `update` role list when it declares one, and by its `write` list otherwise, so a collection that scopes updates to the row's `creator` refuses an edit on someone else's row. Pass if_mat
delete_rowSoft-delete a row from a v2 app's collection. Recoverable: the row is tombstoned, not destroyed, and restore_row brings it back for 30 days (see list_deleted_rows). A watcher sees the deletion live as op:delete on the change feed. Pass if_match for an optimistic-locked delete. Re
list_deleted_rowsList a collection's recently deleted rows: the recovery bin. Deleting a row is a soft delete, so it can be restored with restore_row until recoverable_until passes (30 days after deletion by default). Owner or agent only, and deliberately independent of the collection's read perm
restore_rowRestore a soft-deleted row, undoing delete_row. The row comes back with its original data and creator, its version bumped. Find restorable keys with list_deleted_rows. Owner or agent only. Fails with restore_expired if the row was purged, or restore_conflict if another live row t
get_feed_eventsPoll a v2 app's change feed for what has happened: row creates, updates and deletes, from any writer, agent or human. It is the long-poll analogue of `homespun apps watch`, since MCP has no streaming. The loop is: call with no `since` first, process the returned entries, keep the
appsThe v2 app lifecycle apart from creation and redeploy, which deploy_app covers. Actions: list returns the owning human's apps; show returns full detail including manifest, timezone and has_share_token; audit is a read-only security review of every app the caller owns, computed fr
membersA v2 app's membership (auth spec section 6): who besides the owner can sign in to a private app and write to member-scoped collections. Actions: add invites or attaches a member by email, attaching immediately when the email already has a Human and otherwise sending a magic-link
grantsA v2 app's grant links (M5). A grant link is a capability URL that confers a declared custom role (x-homespun-manifest.roles) on a stable per-holder anonymous identity, so a holder's own rows are isolated by author/:own scoping. A grant does not escalate to owner, member or agent
transferA v2 app's ownership transfer (issue #1847): handing the app, and the quota and billing responsibility that come with it, to a different human. This is two steps, and `start` completing is only the first one. start mints a pending offer and emails the named person an accept link;
credentialsA v2 app's scoped service credentials (#1354, #1355): the bearer token an app owner points a backend they host themselves at, so their own server can read and write the app's data without holding the owner's full authority. Effective permission is always the intersection of the a
connectionsA v2 app's Connections: the stored credential (a static header token, or a full generic OAuth2 client) a manifest webhook rule authenticates its delivery target with, bound to a host so the credential can never be exfiltrated to another one. There is no update action: change a co
ingestA v2 app's inbound catch-hooks (inbound-webhooks). A catch-hook lets an external system such as Stripe, Zapier, Make, Home Assistant or an email router POST JSON to a secret URL that writes into a declared collection, so the app receives data with no agent online. Hooks are decla
attachmentsBinary attachments (images, PDFs, audio, video) referenced from event payloads and input_data via `format: homespun-attachment-id`. Actions: upload, fetch, presign, finalize, download, show, list, delete, mint_token, revoke_token, list_tokens. Choosing an upload path matters for
tasteThe agent's UI taste notes: a short freeform markdown document of presentation preferences gathered from human feedback, such as 'denser layout' or 'no rounded corners'. Reading it before generating or revising an app is what carries earlier feedback into new output. Actions: get
keyThe calling agent's API key. Actions: list returns key info (agent_id, key_prefix, timestamps); mint creates a sibling API key for the caller's own agent identity with the same scope and ownership and returns its raw value once, which is how an MCP-driven agent hands a CLI or chi
feedbackReports a problem with homespun itself to the relay operator, and lists what this agent has already reported. A report is the operator's only visibility into a failure that happened inside an agent's session, so an unreported one is a failure nobody can fix. The channel covers ho
agentAgent identity and binding. Actions: whoami returns the resolved relay URL, the active profile and whether a key is configured, with no network call and no secrets; claim binds this agent to a human using a one-shot claim code from their Settings UI, and is one-way; logout clears
communityPublishing an app as a community template, taking your own listing back down, installing a template, and, for relay operators, reviewing submissions. Actions: publish, unpublish, get_config_contract, install, list_pending, get_submission, approve, reject, set_trust_level. publish
publisherThe caller's community publisher identity: the @-handle and public profile shown in the template gallery. Actions: get returns the profile, including the handle, whether it has been claimed, tenure, and the rating and template counters; claim sets the handle from a lowercase 3-to
reviewRatings and reviews of community templates, responses from a template's own publisher, and, for relay operators, moderation. Actions: create leaves a 1-to-5 star rating and an optional written body on a template the caller has installed, identifying it by `template` (\" / \") or
get_skillThe relay's SKILL.md, a generated guide to the Homespun workflow covering events versus records, the schema grammars and the poll loop. Needs no API key. Useful when working out how the other tools fit together, or to refresh a cached copy. Pass version_only:true to return just t
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 9. Nov. 2026
Der Registry-Name wurde über die Domain homespun.dev 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
Antwort in 830 ms (HTTP 200)
Keine Anmeldung nötig
Wir haben 27 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 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: HOMESPUN_API_KEY, HOMESPUN_REGISTER_SECRET
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.6.98) kam vor 23 Tagen 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: GitHub, Desktop Commander, Cloudflare MCP
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
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
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 thin stdio [Model Context Protocol](https://modelcontextprotocol.io) server for Homespun. It lets any MCP client (Claude Desktop, Cursor, Windsurf, Cline, your own host) deploy a real multi-user web app in one call and keep operating its data afterwards: hosting on its own URL, magic-link identity, a shared realtime database with per-role permissions, email notifications and file attachments, all included.
It is a wrapper, not a reimplementation: all relay I/O goes through @homespunapps/core, and config is shared with the homespun CLI (~/.config/homespun/config.json), so the CLI and this server use the same agent identity.
The binary is homespun-mcp. It speaks MCP over stdio and is meant to be launched by an MCP host, not run interactively.
No global install needed: point your MCP client at npx @homespunapps/mcp. On first use, if no API key is configured, the server auto-registers a fresh agent against the hosted relay and saves the key to the shared CLI store; nothing else to set up.
Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": { "homespun": { "command": "npx", "args": ["-y", "@homespunapps/mcp"] } } }
To pin an existing agent key instead of auto-registering, add an env block:
{
"mcpServers": { "homespun": { "command": "npx", "args": ["-y", "@homespunapps/mcp"], "env": { "HOMESPUN_API_KEY": "hs_..." } } } }
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": { "homespun": { "command": "npx", "args": ["-y", "@homespunapps/mcp"], "env": { "HOMESPUN_API_KEY": "hs_..." } } } }
Any client that takes a command + args + env works the same way:
{
"mcpServers": { "homespun": { "command": "npx", "args": ["-y", "@homespunapps/mcp"], "env": { "HOMESPUN_URL": "https://homespun.dev", "HOMESPUN_API_KEY": "hs_..." } } } }
If you'd rather install it globally (npm i -g @homespunapps/mcp), use "command": "homespun-mcp" with no args.
All environment variables are optional; the defaults target the hosted relay and auto-register on first use.
| Variable | Default | Purpose |
|---|---|---|
HOMESPUN_URL | https://homespun.dev | Relay base URL. Set to point at a different relay. |
HOMESPUN_API_KEY | _(auto-registered)_ | Agent API key. If unset, the server registers an agent on first use and saves the key to ~/.config/homespun/config.json (shared with the CLI). |
HOMESPUN_TOKEN | _(none)_ | Alias for HOMESPUN_API_KEY (for hosts that name secrets *_TOKEN). HOMESPUN_API_KEY wins if both are set. |
HOMESPUN_AGENT_NAME | homespun-mcp | Display name for the auto-registered agent. |
HOMESPUN_REGISTER_SECRET | _(none)_ | Registration secret, only for relays running REGISTRATION_MODE=secret. |
Config precedence mirrors the CLI: env vars win over the saved profile, which falls back to the default relay URL.
This server has full parity with the [`homespun` CLI](https://www.npmjs.com/package/@homespunapps/cli): every capability the CLI exposes is reachable here.
MCP tools are request/response, so there is no long-lived "watch". To see what changed you poll get_feed_events with the cursor from the previous call (pass wait to long-poll, 0 to 30 seconds); to watch one collection, re-call list_rows with the prior next_cursor as since. Each tool description spells out the pattern for the model.
To keep the tool list compact (a flat 50+ tools would bloat client context and degrade selection), hot-path nouns stay discrete tools while multi-verb management nouns collapse into one tool each with a required `action` enum.
| Tool | What it does |
|---|---|
deploy_app | Deploy a v2 app: an HTML document plus a capability manifest, hosted at its own URL. Omit app_id to create, pass it to redeploy in place (same URL, same data, same members). Takes html or html_path, optional assets, visibility, slug, dry_run, force. |
list_rows | List rows in a collection. Doubles as the poll for a collection's current state: pass the prior next_cursor as since. |
get_row | Fetch one row by key (a dedicated relay route, not a client-side scan). |
add_row | Create a row, or return the existing one if key is already present (deduped: true), or row_not_found when the collection's read list does not reach that row for you. The only create-shaped verb. |
update_row | Replace an existing row's data. Optional if_match optimistic lock. |
delete_row | Soft-delete a row. Optional if_match. |
get_feed_events | Poll the app's change feed for row creates/updates/deletes from any writer, human or agent. Optional wait (0-30s) long-poll. |
action)| Tool | Actions |
|---|---|
apps | list · show · update · share_link_rotate · delete · wake · domain_set · domain_status · domain_remove |
members | add · list · set_role · remove · roles |
grants | mint · list · revoke |
ingest | list · rotate · set_signing_secret · clear_signing_secret |
attachments | upload · fetch · presign · finalize · download · show · list · delete · mint_token · revoke_token · list_tokens |
taste | get · set · clear |
key | list · mint · revoke |
feedback | create · list |
agent | whoami · claim · logout |
community | publish · unpublish · get_config_contract · install · list_pending · get_submission · approve · reject · set_trust_level |
publisher | claim · get · update |
review | create · respond · report · remove · unhold |
| Tool | What it does |
|---|---|
get_skill | Fetch the relay's auto-updating guide (unauthenticated) to self-teach the workflow. |
Attachments take and return file paths: upload reads an absolute file_path; download writes to an absolute out_path (or returns base64 when omitted). For real media, presign then PUT then finalize avoids moving bytes through the tool call.
One data primitive. Everything an app stores is a collection: a named, mutable, queryable set of rows, each with a key, a data payload, an optimistic-lock version and an author. Every write also lands on the app's ordered change feed. Declare a collection appendOnly: true in the manifest when you want a journal (an audit trail, a submission log) rather than mutable state.
config show is replaced by agent → whoami (resolved relay URL, active profile, and whether a key is set; no secrets).agent register is not a tool. The server auto-registers on first use and shares the CLI's key store; agent → claim binds it to a human afterwards.demo (the interactive terminal tour) and the CLI self-updater are terminal concerns with no agent use; omitted.deploy_app with your HTML plus an x-homespun-manifest declaring the app's collections and which roles may read, write and delete each. Returns { app_id, url, ... }.url to the owner, and invite anyone else with members (action: add).get_feed_events with wait: 25 in a loop, passing the prior cursor as since, to see what people do.list_rows / add_row / update_row, and ship changes with deploy_app again, passing app_id.server.json (in this package) carries the metadata for the official MCP registry. Publishing there is a follow-up step for the maintainer.
MIT, see LICENSE.