# Ridge Pack

> Roof take-offs, weather windows, building regs and storm triage for UK roofers' AI assistants

- name: io.github.Nero-Engine/ridge-pack
- version: 1.1.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.Nero-Engine%2Fridge-pack
- tools: https://api.protogrid.dev/v1/servers/io.github.Nero-Engine%2Fridge-pack/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "ridge-pack": {
      "type": "http",
      "url": "https://ridge-pack.nerolabs.workers.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-1d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 5,880 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 1 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 5,880 tokens to load them all
- tool set hash: 899887d7e1741dc059d97c25f157cd28
- tools last changed: 2026-11-13T06:19:11.033Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.Nero-Engine/ridge-pack.svg)](https://protogrid.dev/servers/io.github.Nero-Engine/ridge-pack)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-13 `trade_profile` changed (description)
  - before: Checks the roofer's own business details (Nero Trade Profile v1: trading name, Companies House number, competent person scheme and number, postcode, contact) and returns them cleaned, with a stable `nero_trade_ref` computed from the scheme registration or company number. Pass the same object as `trade` to any other tool. Ridge Pack stores nothing. The same profile and reference can later be used to sign the business into Nero Work, the agent job exchange for trades.
  - after: Checks the roofer's own business details (Nero Trade Profile v1: trading name, Companies House number, competent person scheme and number, postcode, contact) and returns them cleaned, with a stable `nero_trade_ref` computed from the scheme registration or company number. The same object, given as `trade` to the other tools, prefills their answers. Ridge Pack stores nothing. The same profile and reference can later be used to sign the business into Nero Work, the agent job exchange for trades.

Full history: https://api.protogrid.dev/v1/servers/io.github.Nero-Engine%2Fridge-pack/changes

## Remotes

- https://ridge-pack.nerolabs.workers.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `check_building_regs`: England and Wales. Says whether a roofing job is notifiable to building control (re-covering 25% or more of a roof, a change of covering, structural work, rooflights, dormers, solar, new roofs), whether Part L wants the whole roof insulated (England: more than 50% of the roof or more than 25% of the whole envelope renovated, target 0.16 W/m2K from Approved Document L; Wales: over 25%), who signs it off (competent person scheme such as CompetentRoofer, or building control), and flags for listed buildings, conservation areas, Article 4, flats, bats and asbestos. Each answer cites the official source. Typical call: {"nation":"england","work_type":"re_cover_pitched","percent_of_roof":100,"insulation":"ceiling_level","competent_person_scheme_member":true}.
- `check_pitch_headlap`: Checks a roof covering type against the pitch, the headlap and the batten gauge: is the pitch below the typical minimum for that kind of tile or slate, is the headlap enough for the exposure, does the gauge leave the headlap you want. Returns overall (ok_subject_to_maker_data, check_with_maker or fail), each check with its working, and what to confirm. Indicative: always confirm against the maker's data for the exact product. Pass maker_min_pitch_deg and maker_min_headlap_mm from the data sheet to check against those instead. Typical call: {"covering":"natural_slate","pitch_deg":25,"headlap_mm":75,"exposure":"severe"}.
- `list_capabilities`: Lists Ridge Pack's tools, what it covers (nations, roof shapes, coverings, job types) and what it deliberately does not do. Free, needs no input.
- `roof_takeoff`: Works out a pitched roof's slope area, rafter length, ridge, hips, eaves and verges from the plan size and pitch, then a materials list: tiles or slates, battens, underlay rolls, ridge and hip tiles, hip irons, valleys, nails, eaves trays, ventilation and dry verge units, with waste. Every step of the working is shown. Geometry is exact; quantities resting on product figures are indicative unless you pass the maker's gauge, cover width and headlap. Run complex roofs one section at a time. Typical call: a 10 x 8 m gable roof at 35 degrees in concrete interlocking tiles: {"shape":"gable","plan_length_m":10,"plan_width_m":8,"pitch_deg":35,"covering":"concrete_interlocking"}.
- `storm_triage`: Triage for storm damage and roof leaks. Gives an urgency of routine, soon or emergency (the same three speeds as Nero Work) with the reasons, safe first steps for the homeowner (no climbing, electrics, bulging ceilings, gas, falling debris, insurer), the temporary cover the roofer should use for each problem (tarpaulin battened over the ridge, tile clips, tingles, flashing tape, cold patch), what to photograph, and a Nero Work job title. Typical call: {"symptoms":["water_coming_through_ceiling","tiles_or_slates_missing"],"missing_count":12,"more_bad_weather_within_24h":true}.
- `trade_profile`: Checks the roofer's own business details (Nero Trade Profile v1: trading name, Companies House number, competent person scheme and number, postcode, contact) and returns them cleaned, with a stable `nero_trade_ref` computed from the scheme registration or company number. The same object, given as `trade` to the other tools, prefills their answers. Ridge Pack stores nothing. The same profile and reference can later be used to sign the business into Nero Work, the agent job exchange for trades.
- `weather_window`: Gets the hourly forecast for a UK postcode (today and up to 8 days ahead, from MET Norway) and checks each working hour against wind, gusts, rain, frost and the material's limits for the job type (tiling, membranes and sheets, torch-on, liquid coatings, EPDM adhesive, mortar bedding, lead work, inspection). Returns each day as good, caution or no_go with good hours, the best window, max gust in mph and the reasons, plus the limits used. Limits are Ridge Pack's cautious defaults (HSE sets no single wind speed) and can be overridden. Typical call: {"postcode":"BS1 4DJ","job_type":"membrane_or_sheets","start_date":"2026-11-16","end_date":"2026-11-20"}.
- `work_at_height_plan`: Builds the working at height and scaffold checklist for a roofing job (hierarchy of controls, scaffold to TG20 with guardrails, 7-day inspections, ladders only for short work, roof ladders, flat roof edges, fragile surfaces, power lines, highway licences, hot works, asbestos, rescue), the CDM 2015 duties (construction phase plan, domestic client, F10 notification test), a scored risk register (likelihood x severity) and a short risk note ready to print. From the Work at Height Regulations 2005, CDM 2015 and free HSE guidance. Typical call: {"job_type":"re_roof","eaves_height_m":5.5,"pitch_deg":35,"duration_days":5,"workers":3,"access":"scaffold","next_to_public_highway":true}.
