pi-controller
Inspects a configured Git repository (status, log) and performs initial clones and fast-forward-only fetches/pulls.
Controls and monitors a Raspberry Pi's system health, disk usage, service status, logs, and files within the /srv/kalshi project boundary.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pi-controllercheck kalshi recorder service status and show recent logs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pi-controller
Bounded MCP control plane for the Raspberry Pi running the Kalshi live-recorder project.
The design goal is full control over the Kalshi project, not full control over the Raspberry Pi.
Security boundary
The MCP service is allowed to:
inspect Pi health relevant to recording;
read/write files under
/srv/kalshionly;inspect recorder data/log/state directories;
clone/fetch/pull the configured recorder Git repository;
inspect
kalshi-recorder.serviceand its journal logs;start/stop/restart only
kalshi-recorder.service;read the recorder's future health JSON.
It deliberately cannot:
run arbitrary shell commands;
use arbitrary
sudo;change SSH, Raspberry Pi Connect, Tailscale, networking, packages, boot config, or disks;
read/write arbitrary OS/home paths;
Git reset/clean/push through the Pi control surface;
rewrite its own root-owned MCP policy files through MCP tools.
Related MCP server: SSH MCP Server
Layout
/opt/pi-controller/ root-owned MCP implementation
/etc/pi-controller/ root-owned policy/config + tunnel env
/var/lib/pi-controller/ tunnel-client state
/srv/kalshi/ MCP-writable project boundary
recorder/ future Kalshi live-recorder Git checkout
data/
logs/
state/The MCP server binds only to 127.0.0.1:8765 and exposes Streamable HTTP at /mcp.
1. Install the bootstrap on the Pi
git clone https://github.com/Dharklol/pi-controller.git
cd pi-controller
chmod +x install.sh setup_tunnel.sh scripts/kalshi-recorder-control
sudo ./install.shThen verify:
sudo systemctl status pi-controller --no-pager
sudo journalctl -u pi-controller -n 50 --no-pager
ss -ltnp | grep ':8765'The local MCP endpoint is:
http://127.0.0.1:8765/mcpThe installer uses Python 3.10+ and the stable MCP Python SDK v2 line.
2. Create an OpenAI Secure MCP Tunnel
In OpenAI Platform tunnel settings:
Create a Secure MCP Tunnel.
Associate the Platform organization that owns it.
Associate the ChatGPT workspace/account that should use it.
Keep the resulting
tunnel_id.
Creating/editing a tunnel needs Tunnels Read + Manage. Running tunnel-client or selecting the tunnel in ChatGPT needs Tunnels Read + Use.
3. Install tunnel-client on the Pi
Use the current Linux ARM64/aarch64 download from OpenAI Platform tunnel settings or the latest public openai/tunnel-client release.
For v0.0.13, the ARM64 archive is:
wget -O tunnel-client-v0.0.13-linux-arm64.zip \
https://github.com/openai/tunnel-client/releases/download/v0.0.13/tunnel-client-v0.0.13-linux-arm64.zip
rm -rf tunnel-client-dist
mkdir tunnel-client-dist
unzip tunnel-client-v0.0.13-linux-arm64.zip -d tunnel-client-dist
sudo install -m 0755 tunnel-client-dist/tunnel-client /usr/local/bin/tunnel-client
sudo install -m 0755 tunnel-client-dist/cloudflared /usr/local/bin/cloudflared
sudo install -m 0644 tunnel-client-dist/cloudflared-manifest.json /usr/local/bin/cloudflared-manifest.json
tunnel-client --version
tunnel-client cloudflared version
tunnel-client help quickstartThe companion cloudflared binary and manifest should remain adjacent to tunnel-client; supported release archives are built that way intentionally.
The Pi needs outbound HTTPS to OpenAI; no public inbound port is required.
4. Store the tunnel runtime key locally
Create/use a runtime API key with tunnel-use permission.
Do not put it in GitHub and do not paste it into ChatGPT.
Run the tunnel setup once:
sudo ./setup_tunnel.sh tunnel_0123456789abcdef0123456789abcdefOn first run, the script creates:
/etc/pi-controller/tunnel.envand asks you to edit it:
sudo nano /etc/pi-controller/tunnel.envPut exactly:
CONTROL_PLANE_API_KEY=YOUR_RUNTIME_KEYSave and exit, then rerun:
sudo ./setup_tunnel.sh tunnel_0123456789abcdef0123456789abcdefThat initializes the kalshi-pi tunnel profile, runs:
tunnel-client doctor --profile kalshi-pi --explainand enables the persistent openai-kalshi-tunnel.service.
Check it with:
sudo systemctl status openai-kalshi-tunnel --no-pager
sudo journalctl -u openai-kalshi-tunnel -n 100 --no-pager5. Connect from ChatGPT
Create a developer-mode app/plugin in ChatGPT:
Connection: Tunnel
select the available tunnel, or paste its
tunnel_id.
Initial smoke tests:
system_infodisk_usagelist_filesservice_status
The recorder service does not exist yet, so recorder-specific service status can report not-found until we build it.
Bootstrap MCP tools
Read/inspection:
system_infodisk_usagelist_filesread_filegit_statusgit_loggit_fetchservice_statusrecent_logsrecorder_health
Bounded mutations:
create_directorywrite_filereplace_textgit_clone_recordergit_pullstart_servicestop_servicerestart_service
There is intentionally no generic shell(command) tool.
Notes
/opt/pi-controllerand/etc/pi-controllerare root-owned so the MCP tools cannot modify their own authority./srv/kalshiis the project boundary the MCP account can operate.Git pulls are fast-forward-only.
Direct writes into
.gitare blocked.Raspberry Pi Connect remains the human/admin recovery path.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables ChatGPT to inspect and edit local projects through a secure MCP interface, offering workspace management, file operations, git integration, and safe command execution.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible AI clients to remotely manage a Linux server via SSH, supporting file operations, Docker control, Git pulls, and arbitrary command execution.14,123MIT
- AlicenseNot gradedqualityAmaintenanceLets ChatGPT or MCP clients work with files on your machine, with tools for reading, editing, searching, git operations, and safety checks.MIT
- AlicenseNot gradedqualityCmaintenanceEnables ChatGPT web to safely read and modify only explicitly allowed local project files through OpenAI Secure MCP Tunnel, including git operations, file edits, and running project scripts, while enforcing strict security boundaries.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dharklol/pi-controller'
If you have feedback or need assistance with the MCP directory API, please join our Discord server