laloop

SRE tooling · 2026 · Agent Skills and MCP

Runbooks an agent can follow without improvising

A versioned catalogue of SRE and Google Cloud skills, with the investigation patterns and scripts they call, served to Claude Code, claude.ai, a LangGraph incident agent and local models through one private MCP server.

30
skills: 25 general, 5 for incident investigation
77
reference runbooks, loaded only when needed
28
investigation patterns that classify signal from noise
34
scripts the skills call instead of guessing

The problem

An LLM asked to investigate an incident will happily improvise: a plausible query, a confident root cause, a symptom mistaken for the cause. In operations that is worse than no answer.

The fix is to move the know-how out of the prompt and into versioned files. The model chooses which skill applies; the skill decides the steps, the queries and what counts as evidence. Same alert, same procedure, every time.

How it works

From commit to every agent

  1. WriteSKILL.md with a trigger description, references and scripts, in git
  2. ValidateBuild fails if a name differs from its folder, a description is empty or a name repeats
  3. BundleCatalogue compiled into the Worker on every deploy
  4. ServeFour MCP tools: list_skills, get_skill, get_reference, search_skills
  5. ProtectOAuth with owner-only consent, or a bearer token; nothing public
  6. ConsumeClaude Code, claude.ai, the incident agent and Ollama models

What a pattern encodes

Investigation skills are rules, not prompts. A few of the principles every incident pattern follows:

investigation-skills/incident-investigation/SKILL.md
---
name: incident-investigation
description: Investigate GCP production alerts
  across Cloud Run, Pub/Sub, Cloud SQL and SLO
  burn rate.
---
## Principles
1. Filter noise before root cause analysis.
   Health probes and expected payment
   declines are not incidents.
2. Root cause precedes symptom in time.
   OOM precedes liveness failure.
3. Alert direction encodes the problem.
   GT = consumer failing,
   LT = publisher stopped.
4. Return structured JSON only.

Decisions that mattered

Git is the source of truth

The catalogue is bundled at build time, so every merge deploys and a broken skill breaks the build instead of reaching an agent.

Generic skills, tenant values apart

No company names, project IDs or hostnames in skills. Employer-specific values live under tenants/ and are never served.

Small context first

References are opt-in, so the same skills work in a 32k context on a local model and in a frontier model.

Private by default

Read-only server, owner-only OAuth consent, constant-time token checks, and a 503 if the secret is missing.

Scripts over prose

Fetching logs, time series, revisions or feature-flag changes is a function with a typed return, not an instruction to the model.

Validate where the rules live

Drafting happens here; a handoff skill produces the prompt that validates the result inside each company's own assistant.

Stack

LayerChoiceWhy
ContentAgent Skills (Markdown)Readable by people and by any compatible client
ScriptsPython, Google Cloud APIsLogs without a severity filter, metrics, revisions, SLOs
ServerTypeScript, MCP SDK, Cloudflare WorkersStateless Streamable HTTP, one server per request
Authworkers-oauth-provider + KVDynamic client registration for claude.ai
Testsnode --testEnd to end against the production origin

Where it stands

In daily use by the incident agent and in day-to-day SRE work. Started as a fork of Jeffallan/claude-skills (MIT); the upstream skills kept carry their original attribution, and the investigation skills, patterns, scripts and MCP server are new.

More work

Have an AI project stuck at the prototype stage?

Tell us the problem, the data and where it needs to run. We'll come back with an architecture and scope proposal.

Email contato@laloop.ai