claude-rc: add the ens-forecast MCP server
Register ens-forecast-mcp, allow its tools in the shared session and document the weather_ro login it needs.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
# Always-on Remote Control
|
# Always-on Remote Control
|
||||||
|
|
||||||
Reference copy of a machine setup: Claude Code Remote Control running as its own system user `claude-rc`, so my
|
Reference copy of a machine setup: Claude Code Remote Control running as its own system user `claude-rc`, so my
|
||||||
projects' read-only MCP servers (now: negsplit) can be used from the Claude app on the phone. One user and one
|
projects' read-only MCP servers (now: negsplit, ens-forecast) can be used from the Claude app on the phone. One user and one
|
||||||
session (`data`) for all projects. The user holds only read-only database logins; Bash runs sandboxed without
|
session (`data`) for all projects. The user holds only read-only database logins; Bash runs sandboxed without
|
||||||
network and can't read them (only the MCP servers, which run outside the sandbox, do). Nothing secret in this
|
network and can't read them (only the MCP servers, which run outside the sandbox, do). Nothing secret in this
|
||||||
folder: the ntfy topic lives only in `/etc/claude-rc-notify.env`.
|
folder: the ntfy topic lives only in `/etc/claude-rc-notify.env`.
|
||||||
@@ -14,6 +14,12 @@ Needs `claude-code`, `bubblewrap`, `socat` and each project's MCP server install
|
|||||||
```
|
```
|
||||||
mariadb -u root -p -e "ALTER USER 'garmin_ro'@'localhost' WITH MAX_STATEMENT_TIME 30;"
|
mariadb -u root -p -e "ALTER USER 'garmin_ro'@'localhost' WITH MAX_STATEMENT_TIME 30;"
|
||||||
```
|
```
|
||||||
|
- ens-forecast: the installed `ens-forecast-mcp` (with `python-mcp` and `python-mysqlclient`) and the `weather_ro`
|
||||||
|
grant from its `sql/weather_grants.sql`; the same safety net:
|
||||||
|
|
||||||
|
```
|
||||||
|
mariadb -u root -p -e "ALTER USER 'weather_ro'@'localhost' WITH MAX_STATEMENT_TIME 30;"
|
||||||
|
```
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
@@ -37,6 +43,13 @@ doas install -d -o claude-rc -g claude-rc -m 700 /var/lib/claude-rc/.config/negs
|
|||||||
doas install -o claude-rc -g claude-rc -m 600 config.toml /var/lib/claude-rc/.config/negsplit/config.toml
|
doas install -o claude-rc -g claude-rc -m 600 config.toml /var/lib/claude-rc/.config/negsplit/config.toml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
ens-forecast (`weather_ro`): only the `[readonly]` section of my own config, so the password never shows:
|
||||||
|
|
||||||
|
```
|
||||||
|
doas install -d -o claude-rc -g claude-rc -m 700 /var/lib/claude-rc/.config/ens-forecast
|
||||||
|
awk '/^\[/ { keep = ($0 == "[readonly]") } keep' ~/.config/ens-forecast/config.toml | doas install -o claude-rc -g claude-rc -m 600 /dev/stdin /var/lib/claude-rc/.config/ens-forecast/config.toml
|
||||||
|
```
|
||||||
|
|
||||||
Log in, trust the folder and enable Remote Control once, interactively:
|
Log in, trust the folder and enable Remote Control once, interactively:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
"negsplit": {
|
"negsplit": {
|
||||||
"command": "negsplit",
|
"command": "negsplit",
|
||||||
"args": ["mcp"]
|
"args": ["mcp"]
|
||||||
|
},
|
||||||
|
"ens-forecast": {
|
||||||
|
"command": "ens-forecast-mcp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
"disableAutoMode": "disable",
|
"disableAutoMode": "disable",
|
||||||
"allow": [
|
"allow": [
|
||||||
"mcp__negsplit",
|
"mcp__negsplit",
|
||||||
|
"mcp__ens-forecast",
|
||||||
"Read(~/.local/share/negsplit/charts/**)"
|
"Read(~/.local/share/negsplit/charts/**)"
|
||||||
],
|
],
|
||||||
"deny": [
|
"deny": [
|
||||||
|
|||||||
Reference in New Issue
Block a user