[Feature] Add installers for snippet-type MCP clients (Cline, Kiro, Windsurf, Cursor)
- Lenguaje dominante
- Python
- Estrellas
- 52
- Forks
- 18
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### Problem
Split from #32.
PR #57 shipped one-command installers for Gemini CLI, Goose, opencode, and Amp. However, 4 clients that have stable on-disk config files still only have manual config snippets in mcp-integration.md — users must manually find and edit the right JSON file. This is error-prone and inconsistent with the installer pattern already established for Codex, Claude Code, Gemini CLI, Goose, opencode, and Amp.
### Proposed solution
Add `hebb install` / `hebb uninstall` commands for:
| Client | Config file | Format |
|--------|------------|--------|
| Cline | ~/.cline/mcp.json (CLI) / VS Code global storage (IDE) | JSON, mcpServers |
| Kiro | .kiro/settings/mcp.json or ~/.kiro/settings/mcp.json | JSON, mcpServers |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | JSON, mcpServers |
| Cursor | ~/.cursor/mcp.json or .cursor/mcp.json | JSON, mcpServers |
Follow the pattern in src/hebb/integrations/gemini_cli/ (shared _json_config.py helpers). Each installer should:
- Resolve absolute hebb-mcp path via hebb_mcp_command()
- Be idempotent (re-running replaces prior hebb entry)
- Preserve unrelated config entries
- Use atomic writes (tempfile + os.replace)
Acceptance criteria:
- Each client has install and uninstall commands
- Unit tests covering install, idempotency, config preservation, and uninstall
- mcp-integration.md (EN + zh) updated to recommend installer as primary method
- S1 command-drift CI guard extended to cover new commands
### Alternatives considered
Leave as manual snippets only. This works but creates an inconsistent experience — some clients have one-command install, others require manual JSON editing.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.