sl-mcp
README.md
# sl-mcp
MCP server for [Sapling](https://sapling-scm.com/) (`sl`). Gives LLMs structured access to Sapling repos with built-in safety guardrails.
## Prerequisites
- [Sapling](https://sapling-scm.com/) installed and on your PATH
- Node.js 18+
## Install
### Claude Code
```bash
claude mcp add --transport stdio sl -- npx -y sl-mcp
```
Restart Claude Code. Verify with `/mcp` — you should see the `sl` server listed.
### Other MCP clients
Add to your MCP config file (`.mcp.json`, `claude_desktop_config.json`, etc.):
```json
{
"mcpServers": {
"sl": {
"command": "npx",
"args": ["-y", "sl-mcp"]
}
}
}
```
## Tools
22 tools across three tiers:
| Tier | Tools | Confirmation |
|------|-------|-------------|
| **Read** | `sl_status` `sl_diff` `sl_log` `sl_show` `sl_blame` `sl_cat` `sl_root` `sl_smartlog` | None |
| **Write** | `sl_goto` `sl_commit` `sl_amend` `sl_rebase` `sl_shelve` `sl_unshelve` `sl_add` `sl_remove` `sl_forget` `sl_revert` `sl_undo` | Destructive ops warn LLM to confirm |
| **Remote** | `sl_pull` `sl_push` `sl_pr_submit` | Always confirm with user |
## Safety
- Force push to `main`/`master` is **blocked server-side** (not just a warning)
- Destructive tools (rebase, revert, goto --clean) include confirmation guidance in tool descriptions
- Remote tools always instruct the LLM to confirm before executing
## Configuration
| Env var | Default | Description |
|---------|---------|-------------|
| `SL_MCP_BINARY` | `sl` | Path to Sapling binary |
| `SL_MCP_TIMEOUT` | `30000` | Command timeout in ms |
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessSyncing