You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Goal axis: 易接入 (easy to integrate) — the main lever for "easy for every agent to adopt." Most of today's agent ecosystem are MCP consumers, so for the large majority of clients, integration reduces to registering the hebb-mcp stdio server in that client's config format, ideally behind a one-shot command — exactly the pattern popular MCP servers ship as an "Install in <client>" matrix (e.g. Context7). This is an epic / tracking issue to drive Hebb Mind to a complete, verified quick-connect matrix across the agent ecosystem.
This is the MCP-client quick-connect variant of the roadmap's "易接入" line. It is complementary to — not a duplicate of — the native-adapter epic (roadmap H1: LangChain/LlamaIndex/LangGraph/CrewAI/AutoGen serialization-level adapters) and the copy-paste recipe docs (#29, S3). Those wrap our REST/MCP for framework SDKs; this epic delivers per-client MCP registration for editor/agent shells. It directly executes the D1 "push MCP as the standard wedge + thin per-client install" bet from the roadmap.
Current state (verified against tree)
The MCP server and the absolute-path install pattern already exist and are solid; only two clients have a first-class installer and four are documented.
MCP server entrypoint: hebb-mcp = "hebb.mcp.server:main" — pyproject.toml:65. Implementation in src/hebb/mcp/server.py; stdio transport via mcp.run(transport="stdio") at src/hebb/mcp/server.py:199. Exposes four tools: write_memory, search_memory, consolidate, ingest_conversation (src/hebb/mcp/server.py:54,90,141,160). Also launchable as hebb mcp serve (src/hebb/cli/commands/mcp_cmd.py:13).
Absolute-path resolution (the hard constraint): hebb_mcp_command() resolves the absolute hebb-mcp path via shutil.which, falling back to [sys.executable, "-m", "hebb.mcp.server"] — src/hebb/utils/cli_paths.py:37. The module docstring (src/hebb/utils/cli_paths.py:1) documents why: GUI-launched apps / launchd / systemd / Task Scheduler do not inherit the shell PATH, and pip install --user lands scripts off-PATH.
Existing first-class installers (the pattern to generalize):
Claude Code — hebb claude-code install, group registered at src/hebb/integrations/claude_code/cli.py:8, logic in src/hebb/integrations/claude_code/install.py:111. Bespoke, not plain MCP: it installs hooks (SessionStart→recall, UserPromptSubmit→prompt, Stop→summary; install.py:24-52) and registers the MCP server, preferring claude mcp add and falling back to settings.json (install.py:152-159,175).
Both are registered on the root CLI at src/hebb/cli/main.py:38-39.
Existing docs cover only four clients, already with absolute-path guidance: Claude Code, Codex, Claude Desktop, Cursor — repo_pages/guide/mcp-integration.md:37,76,91,105 (zh mirror exists: repo_pages/zh/guide/mcp-integration.md). The "use which hebb-mcp" tip is at repo_pages/guide/mcp-integration.md:31.
No quick-connect installer exists for any client other than Claude Code and Codex, and no matrix/table enumerates the ecosystem.
The S1 command-drift CI guard does not yet exist. It is a proposed item in the roadmap (assert every hebb … string in plugin.json / .codex/hooks.json / docs resolves to a registered Click command). tests/unit/test_audit_hooks.py is unrelated — it guards recall response-shape drift (F2), not command drift.
Proposed approach
Generalize the existing installer pattern (hebb codex install is the clean template; hebb claude-code install is the bespoke template) into per-client hebb <client> install commands where the client exposes a CLI or a stable on-disk config.
For clients without a CLI (GUI / UI-only config), ship a documented, verified absolute-path config snippet instead, always built from which hebb-mcp per the user-path-ownership constraint.
Render the whole ecosystem as an "Install in <client>" matrix in repo_pages/guide/mcp-integration.md (+ zh mirror), one row per client.
Split per-client implementation into follow-up issues hanging off this epic; this issue tracks the matrix and the shared constraints.
Client matrix (one task per client)
For each client, classify the MCP config mechanism and the planned delivery: (a) a hebb <client> install command, (b) a documented absolute-path config snippet, or (c) not an MCP client → bespoke handling.
Client
MCP config mechanism
Planned delivery
Amp
amp CLI / settings
(a) installer or (b) snippet — confirm CLI surface
VS Code — deliver (b) snippet (evaluate (a) installer)
Warp — deliver (b) snippet
Windsurf — deliver (b) snippet
Acceptance criteria
Every client above has either a one-command installer (hebb <client> install) or a verified absolute-path config snippet — and the "Install in <client>" matrix renders in repo_pages/guide/mcp-integration.md with EN + zh (repo_pages/zh/guide/mcp-integration.md) updated together.
Hard constraint (user-path-ownership): every quick-connect command/snippet for a cross-process surface registers the resolved absolute hebb-mcp path (via which hebb-mcp / where hebb-mcp / hebb_mcp_command()), never a bare hebb-mcp. A bare name silently fails to launch under GUI apps / launchd / Task Scheduler that don't inherit the shell PATH.
New per-client installers route absolute-path resolution through hebb.utils.cli_paths.hebb_mcp_command() and are idempotent (replace any prior hebb MCP entry on re-run), matching codex/cli.py and claude_code/install.py.
Clients needing bespoke (non-plain-MCP) handling are called out explicitly; clients that are not MCP consumers are marked (c) with the rationale.
The proposed S1 command-drift CI guard is created (or extended once it lands) to also cover any generated client config / snippet, asserting every emitted hebb … / hebb-mcp reference resolves to a registered Click command or the real entrypoint.
Per-client follow-up issues are split off this epic and linked back here.
Scope / out of scope
In scope: registering the existing hebb-mcp stdio server (4 tools) into each client; per-client installers; absolute-path snippets; the EN/zh matrix; the CI guard coverage.
Out of scope: the native serialization-level adapter matrix (roadmap H1 — LangChain/LlamaIndex/LangGraph/CrewAI/AutoGen), the JS/TS SDK (roadmap H2), and new MCP tools/capabilities. The D1 positioning bet ("MCP as standard + thin per-client install vs N native adapters") should be resolved in parallel, as it bounds how far installer automation goes vs documented snippets.
References
reports/design/capability-gap-roadmap-2026-06-11.md — item H1 (native adapter matrix), S3 (per-framework recipes), and the D1 "push MCP as the standard wedge + thin per-client install" bet that this epic executes.
Context
Goal axis: 易接入 (easy to integrate) — the main lever for "easy for every agent to adopt." Most of today's agent ecosystem are MCP consumers, so for the large majority of clients, integration reduces to registering the
hebb-mcpstdio server in that client's config format, ideally behind a one-shot command — exactly the pattern popular MCP servers ship as an "Install in<client>" matrix (e.g. Context7). This is an epic / tracking issue to drive Hebb Mind to a complete, verified quick-connect matrix across the agent ecosystem.This is the MCP-client quick-connect variant of the roadmap's "易接入" line. It is complementary to — not a duplicate of — the native-adapter epic (roadmap H1: LangChain/LlamaIndex/LangGraph/CrewAI/AutoGen serialization-level adapters) and the copy-paste recipe docs (#29, S3). Those wrap our REST/MCP for framework SDKs; this epic delivers per-client MCP registration for editor/agent shells. It directly executes the D1 "push MCP as the standard wedge + thin per-client install" bet from the roadmap.
Current state (verified against tree)
The MCP server and the absolute-path install pattern already exist and are solid; only two clients have a first-class installer and four are documented.
hebb-mcp = "hebb.mcp.server:main"—pyproject.toml:65. Implementation insrc/hebb/mcp/server.py; stdio transport viamcp.run(transport="stdio")atsrc/hebb/mcp/server.py:199. Exposes four tools:write_memory,search_memory,consolidate,ingest_conversation(src/hebb/mcp/server.py:54,90,141,160). Also launchable ashebb mcp serve(src/hebb/cli/commands/mcp_cmd.py:13).hebb_mcp_command()resolves the absolutehebb-mcppath viashutil.which, falling back to[sys.executable, "-m", "hebb.mcp.server"]—src/hebb/utils/cli_paths.py:37. The module docstring (src/hebb/utils/cli_paths.py:1) documents why: GUI-launched apps / launchd / systemd / Task Scheduler do not inherit the shell PATH, andpip install --userlands scripts off-PATH.hebb claude-code install, group registered atsrc/hebb/integrations/claude_code/cli.py:8, logic insrc/hebb/integrations/claude_code/install.py:111. Bespoke, not plain MCP: it installs hooks (SessionStart→recall,UserPromptSubmit→prompt,Stop→summary;install.py:24-52) and registers the MCP server, preferringclaude mcp addand falling back tosettings.json(install.py:152-159,175).hebb codex install,src/hebb/integrations/codex/cli.py:26. Plain MCP:codex mcp remove/codex mcp add hebb -- <abs path>(cli.py:38-39).src/hebb/cli/main.py:38-39.repo_pages/guide/mcp-integration.md:37,76,91,105(zh mirror exists:repo_pages/zh/guide/mcp-integration.md). The "usewhich hebb-mcp" tip is atrepo_pages/guide/mcp-integration.md:31.hebb …string inplugin.json/.codex/hooks.json/ docs resolves to a registered Click command).tests/unit/test_audit_hooks.pyis unrelated — it guards recall response-shape drift (F2), not command drift.Proposed approach
hebb codex installis the clean template;hebb claude-code installis the bespoke template) into per-clienthebb <client> installcommands where the client exposes a CLI or a stable on-disk config.which hebb-mcpper the user-path-ownership constraint.<client>" matrix inrepo_pages/guide/mcp-integration.md(+ zh mirror), one row per client.Client matrix (one task per client)
For each client, classify the MCP config mechanism and the planned delivery: (a) a
hebb <client> installcommand, (b) a documented absolute-path config snippet, or (c) not an MCP client → bespoke handling.ampCLI / settingsclaude mcp add+ hooks insettings.jsonhebb claude-code install), hooks + MCPclaude_desktop_config.json(GUI)cline_mcp_settings.jsoncodex mcp add(TOML, global)hebb codex install), plain MCP.vscode/mcp.json/ settings~/.cursor/mcp.json/ Settings → MCP (GUI)~/.gemini/settings.json(mcpServers)~/.config/goose/config.yamlorgooseCLI.kiro/settings/mcp.jsonmcp.json(GUI)opencode.json/~/.config/opencode.vscode/mcp.json(native MCP, GUI)~/.codeium/windsurf/mcp_config.json(GUI)Per-client tasks:
Acceptance criteria
hebb <client> install) or a verified absolute-path config snippet — and the "Install in<client>" matrix renders inrepo_pages/guide/mcp-integration.mdwith EN + zh (repo_pages/zh/guide/mcp-integration.md) updated together.hebb-mcppath (viawhich hebb-mcp/where hebb-mcp/hebb_mcp_command()), never a barehebb-mcp. A bare name silently fails to launch under GUI apps / launchd / Task Scheduler that don't inherit the shell PATH.hebb.utils.cli_paths.hebb_mcp_command()and are idempotent (replace any priorhebbMCP entry on re-run), matchingcodex/cli.pyandclaude_code/install.py.hebb …/hebb-mcpreference resolves to a registered Click command or the real entrypoint.Scope / out of scope
hebb-mcpstdio server (4 tools) into each client; per-client installers; absolute-path snippets; the EN/zh matrix; the CI guard coverage.References
reports/design/capability-gap-roadmap-2026-06-11.md— item H1 (native adapter matrix), S3 (per-framework recipes), and the D1 "push MCP as the standard wedge + thin per-client install" bet that this epic executes.reports/audit/core-system-audit-2026-06-07.md— integration/distribution + absolute-path (launchd/GUI PATH) findings.reports/audit/newuser-experience-audit-2026-06-08.md— new-user onboarding / first-connect friction.src/hebb/mcp/server.py,src/hebb/integrations/codex/cli.py,src/hebb/integrations/claude_code/install.py,src/hebb/utils/cli_paths.py,repo_pages/guide/mcp-integration.md.Filed from the capability-gap roadmap (reports/design/capability-gap-roadmap-2026-06-11.md).