kai mcp #27
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-04-28T10:51:06Z - https://github.com/coilysiren/website/issues/1324
Bootstrap coilysiren-mcp — self-MCP with live GitHub + homelab pulse cards
Why
Personal MCP App as portfolio piece — same shape as
eco-mcp-app, retargeted at "what's Kai building and running right now" instead of an Eco game server. Public, no-auth, hosted. Renders inline as an MCP Apps card in Claude Desktop and equivalents; degrades to a markdown summary elsewhere.The point is recruiter-legible skill evidence (Python, Starlette, MCP Apps spec impl, hosted on the homelab k3s, GH Actions in the loop) plus a cold-outreach asset for AI-tooling shops, especially Anthropic. Not a load-bearing infra artifact — Gauntlet covers that lane.
Goals
*.coilysiren.me, CORS open, no auth.claude mcp add --transport http coilysiren https://....Non-goals
Architecture
Lift wholesale from
eco-mcp-app:2026-01-26.ui://coilysiren/status.html, served alongside the tool result.coilysiren/backend: Dockerfile, Makefile, k3s manifest, GH Actions to GHCR, Tailscale + cert-manager.Open question worth deciding early: factor the iframe handshake out of
eco-mcp-appinto a small library both repos vendor, or copy-paste for now? Lean copy-paste until there's a third caller — extracting prematurely is more work than the duplication costs at N=2.Card 1: GitHub pulse
Source:
coilysiren/website/scripts/pulse-data.yaml, refreshed daily by GH Actions. 30-day rolling window with per-day totals, top commit, per-repo segments, and a pre-computed outlier block.Tool:
get_github_pulse— no args, returns the latest pulse YAML rendered as a card.Card sections:
totalLoc. Log-scale or apply an outlier dampener — the Apr 22 coily-initial-commit spike (514k LOC, 163k from one commit) eats everything linearly. Tap a bar → that day'stopCommit.message+ URL.repos[].color, rolled up over 30d.outlier:block already pre-computed in the YAML, with a link to the commit URL.days[].topCommit. FilterRevertandchore(pulse):prefixes from the topCommit slot — they're noise on this surface (the 2026-04-27 entry is currently a revert of a pulse refresh, which is funny but not the signal we want surfaced).Ships first. Data already exists; no upstream dependencies. Estimated ~1 day including iframe styling and a deploy.
Card 2: Homelab pulse
Blocked on the VictoriaMetrics + Grafana deploy landing (tracked in
coilysiren/infrastructure#60).Tool:
get_homelab_pulse— no args, returns kai-server vitals.Card sections (each renders only if data is present, per the eco-mcp-app "cards you don't have data for just aren't rendered" pattern):
hostmetrics.backend,eco-mcp-app,eco-spec-tracker,eco-telemetry,coily(SDKs wired up 2026-04-24).infrastructure.get_eco_server_statusand reuse the existing meteor card. Graceful degrade between cycles is already handled there.Ships second, after the o11y substrate is live.
Time budget
2–3 focused days total, riding the eco-mcp-app template hard. If this stretches past a week, stop — the marginal hour is better spent on a public Terraform contribution or finishing the VictoriaMetrics deploy + a writeup, both of which close more of the bio-vs-evidence gap per hour against the actual 2026 job target.
Out-of-scope follow-ups (file separately if pursued)
coilysiren/website— link to the new repo from/apps, plus a "try this in Claude" CTA on the landing page.coilysiren/eco-mcp-app— extract the MCP Apps handshake into a vendored mini-lib if a third caller appears (don't do it preemptively at N=2).2026-01-26, so this year.Iceboxed in the 2026-05-29 backlog burn-down: Far-future self-MCP portfolio play. Reopen anytime if it becomes real.