
Helmdeck
io.github.tosin2013由 GitHub 账号 tosin2013 发布v0.29.10更新于 Oct 27, 2026
Self-hosted MCP server: sandboxed browser, desktop, vision, code-edit packs for any agent.
概览
自托管的 MCP 桥接服务,把 Helmdeck 能力包(浏览器、桌面、视觉、代码编辑、Git 与 GitHub 操作)以类型化 JSON 工具形式提供给 MCP 客户端。
- 可以做什么
- 运行浏览器能力包:对网址截图、执行多步 CDP 交互、抓取网页、运行自然语言浏览器测试,并进行多来源带引用研究
- 使用文档与视觉能力包:解析 PDF 与图片、渲染幻灯片、生成带旁白的视频,并通过视觉模型完成点击或按标签填表
- 在克隆仓库中处理代码:拉取与推送仓库、生成符号地图、读取写入修补列出删除文件、运行命令,以及提交、查看差异与日志
- 管理 GitHub:创建与列出 issue、列出 PR、发表评论、创建 release 与搜索
- 运行 Python 与 Node 语言边车,并使用保险库占位令牌发起 HTTP 请求
- 进行路由、规划与记忆:为意图推荐能力包、把提示拆解为步骤计划,并保存持久的用户事实
- 适用场景
- 当你已自托管 Helmdeck 控制平面,并希望本地智能体通过统一的类型化工具面驱动浏览器、桌面、文档、Git 与 GitHub 工作流时值得添加,尤其适合使用小型或本地开源模型的场景。它面向无法把凭据发送到云端 API 的团队。
- 运行要求
- 需要一个可通过 HELMDECK_URL 访问的 Helmdeck 控制平面,以及从该控制平面签发的 JWT 令牌 HELMDECK_TOKEN。服务器以 npm 包或 OCI 镜像形式在本地通过 stdio 运行。完整平台安装需要 Docker、Node 20 以上、Go、make、openssl 与 curl,并包含浏览器边车和对象存储。
安装
在 SourceWeft 中
- 打开 控制台中的 Helmdeck,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
helmdeck
Today's helmdeck install ran a full 6-step code-edit loop (clone, read, patch, test, commit, push) on
gpt-oss-120bfor $0.07. The same loop on Cursor or Claude Code direct via Sonnet would have cost $0.30+. Same outcome, ~5× cheaper — and the "expensive" stack isn't even the most expensive option.
Most browser agents require GPT-4o or Claude Sonnet to work reliably. Helmdeck is built for the other 99% of deployments — local 7B models, air-gapped environments, and teams that can't send credentials to a cloud API. It wraps every browser, desktop, git, and code action into a single typed JSON call that even a small model can fill in correctly. The numbers above are the consequence: when packs absorb the work the LLM would otherwise burn tokens rediscovering, cheap or local models do agentic work that frontier-model APIs charge 10× more for.
A self-hosted, containerized platform for AI agents, exposed as Capability Packs — schema-validated, one-shot JSON tools — and native MCP. The defining metric is ≥90% pack success on 7B–30B-class open-weight models, something no frontier-targeting competitor is optimizing for.
📊 Full per-task comparison with reproduction recipe at https://helmdeck.dev/explanation/why-helmdeck. These are one maintainer's findings; we welcome community reproductions.
Why this exists
Smart models thrive on bash and a README. Weak models stall on open-ended interfaces. Helmdeck closes that gap by hiding browser sessions, desktop actions, credentials, and multi-step workflows behind single typed REST / MCP calls.
Three audiences specifically:
- Self-hosted AI teams who can't leave their VPC and need MCP-native infra that doesn't phone home.
- The LocalLLaMA / Ollama crowd running 7B–30B models — pack contracts keep small models reliable where open-ended tool surfaces fail.
- Security-sensitive orgs who need agents to log into SaaS apps without the model ever seeing a credential (vault-backed placeholder tokens + MCP-level audit).
Status
v0.22.0 shipped — agents that work on free models, with memory. The release closes ADRs 047–050:
- Pipeline routing + routing memory (ADR 047) — the
helmdeck.routemeta-pack recommends the best pack/pipeline for an intent (with structured gap warnings when nothing fits), backed by per-caller learned defaults surfaced through thehelmdeck://routing-guideandhelmdeck://my-defaultsMCP resources and a Routing Memory management UI. - Memory write surface + OpenClaw bridge (ADR 048) —
helmdeck.memory_storepersists durable user facts (read back viahelmdeck://my-memory), an optional embedding sidecar powers OpenClaw'smemory_search, and a QMD corpus bridge exposes helmdeck memory to OpenClaw. - Intent decomposition (ADR 049) —
helmdeck.planturns a multi-action prompt into an ordered, pipeline-aware step plan plus arewritten_prompt. - LLM context manager (ADR 050) —
internal/llmcontextcompacts catalog-heavy prompts to fit small-model context budgets (tiered per-model budgets, cascading select + lexical rank, optional two-pass filter), surfaced throughhelmdeck://context-budgetsandhelmdeck://my-plans.
57 capability packs ship in the control-plane binary (47 without an AI gateway configured), alongside 21 built-in pipelines, a community pack marketplace (helmdeck pack install <name>), and operator-supplied cmd.* subprocess packs. Earlier headline features remain: end-to-end content chaining (image.generate auto-feeds podcast/slides/blog covers), the helmdeck://image-models MCP resource, image-mode install (./scripts/install.sh --image-mode), and the Pack Test Runner UI. Helmdeck is published to the official
MCP Registry as
io.github.tosin2013/helmdeck for one-line install in registry-aware
clients. Phases 1–6.5 are complete; the current milestone is v1.0 — Kubernetes & GA (Phase 7), with backlog
materialised as GitHub issues tagged
good first issue
and help wanted.
- 49 ADRs in
docs/adrs/— every architectural decision with PRD back-references - Task breakdown in
docs/TASKS.md— ~85 tasks across 8 phases with critical path - GitHub milestones in
docs/MILESTONES.md— drop-in issue checklists with current ship state - Pack reference in
docs/PACKS.md— every shipped pack's input/output contract
Quick start
That's it. The script runs preflight checks (docker, node ≥20, go ≥1.26, make, openssl, curl) with platform-aware install hints, generates fresh secrets into deploy/compose/.env.local (chmod 600), builds the Management UI bundle, the Go binaries, and the browser sidecar image, brings the Compose stack up, and prints the URL plus a freshly generated admin password.
Useful flags:
./scripts/install.sh --reset— tear down, regenerate secrets, reinstall (new admin password)./scripts/install.sh --no-build— skip build steps, just bring the stack up./scripts/install.sh --help— full flag reference
Or via make: make install.
Connect a client
A running stack is just the platform — the value is packs called by an agent. Wire one of the supported MCP clients to your fresh install:
Once a client is connected, work through the
pack-demo-playbook.md — 20+
copy-pasteable prompts that exercise every pack. The
per-pack reference covers each
pack's contract, error codes, and chained workflows.
Advanced: manual setup
If you'd rather drive each step yourself instead of running the install script:
Or use the Compose stack directly (control plane + Garage object store + bundled init):
Logging in to the Management UI
The login endpoint accepts a static admin password set via the
HELMDECK_ADMIN_PASSWORD env var on the control plane process.
Suitable for the dev / single-node Compose tier; OIDC SSO for
production deployments lands in a later phase.
To change the password: stop the control plane, set
HELMDECK_ADMIN_PASSWORD to the new value, and restart. There is
no in-UI "change password" flow today — the password is managed
out-of-band by whichever orchestrator runs the control plane
(Compose, systemd, Kubernetes Secret, etc.).
If HELMDECK_ADMIN_PASSWORD is unset, the login endpoint
returns 503 login_disabled. The control plane still runs and the
API still works — operators can mint a JWT directly via the CLI:
The minted token can be pasted into any tool that speaks
Authorization: Bearer <token>.
Production note: the static-password path uses constant-time comparison so it's safe against timing attacks, but it's still a shared secret that has to be rotated by hand. For production deployments with multiple operators, OIDC SSO via your existing identity provider is the right answer — see the Phase 6 follow-up roadmap.
Architecture at a glance
- Sidecar pattern — browser runs in its own container, never embedded in the agent (ADR 001)
- Golang control plane — single static binary, distroless image, embeds the React UI (ADR 002)
- Capability Packs — the primary product surface; user-authorable via Go or WASM (ADRs 003, 012, 024)
- OpenAI-compatible AI gateway — Anthropic, Gemini, OpenAI, Ollama, Deepseek with encrypted keys + fallback routing (ADR 005)
- MCP server registry — stdio/SSE/WebSocket transports; built-in MCP server auto-derived from the pack catalog (ADR 006)
- Credential vault — AES-256-GCM with placeholder-token injection; agents never see secrets (ADR 007)
- Dual-tier deployment — Docker Compose for dev/single-node, Helm chart for Kubernetes production (ADRs 009, 010, 011)
- First-class MCP clients — Claude Code, Claude Desktop, OpenClaw, Gemini CLI via a single shared
helmdeck-mcpbridge binary (ADRs 025, 030) - Bundled object store — Garage ships in the Compose stack as the default artifact backend; pluggable to any S3-compatible endpoint (AWS S3, R2, B2, SeaweedFS) for production (ADR 031)
Built-in Capability Packs
57 packs ship in the box (47 without an AI gateway configured). Each one hides a multi-step workflow
behind a single typed JSON-Schema call so weak open-weight models
can drive it as reliably as frontier models. The full input/output
contract for every pack lives in docs/PACKS.md.
The highlights:
See ADRs 014–036 for per-pack contracts and
docs/SIDECAR-LANGUAGES.md for the
runbook on adding new language sidecars (Rust, Go, Ruby, etc.).
The contribution guide in CONTRIBUTING.md
walks through writing your own pack — the most useful contributions
right now are SaaS API wrappers (Slack, Linear, Stripe, Notion, etc.).
License
Licensed under the Apache License, Version 2.0. See
NOTICE for attribution to bundled and depended-upon
projects, and CONTRIBUTING.md for the
contribution guide and the SPDX header convention.
By submitting a pull request you agree to license your contribution under the same terms (Apache 2.0 Section 5 covers the contribution grant — there's no separate CLA).
Author
来源:README.md,提交 03f61a6
工具
0版本历史
1- v0.29.10最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分