Lookup

by Rootly-AI-Labs65832aa6ff7aNo licenseListed Oct 8, 2026Updated Oct 8, 2026

Look up a service, team, or catalog entity in Rootly. Returns owner, on-call, recent reliability, dependencies, and any active incidents. Use when something breaks and the first question is who owns this.

AI-generated overview

Looks up a Rootly service, team, or catalog entity and reports ownership, on-call, reliability, and active incidents.

What it does
Resolves a partial or full name to a Rootly service, team, or catalog entity, then gathers details through Rootly MCP tools. It renders ownership, current on-call, recent uptime and incident history, dependencies, and any active incidents in a fixed markdown layout. It is read-only and never changes Rootly state.
When to use it
Use it when something breaks and the first question is who owns the service or team. It also suits quick checks of on-call coverage, recent reliability, or active incidents for a known entity.
Requirements
Requires access to Rootly MCP tools (mcprootly*) and network access to Rootly. No scripts ship with the skill; it is instructions only.

Service / Team Lookup

You are answering "what is this thing and who owns it?" for a service, team, or catalog entity. The user may pass a partial or full name; do your best to resolve it.

Workflow

1. Resolve the target

$ARGUMENTS is the search term. It might be:

  • A service name (e.g. payments-api)
  • A team name (e.g. Platform)
  • A repository name
  • A catalog entity slug

Strategy:

  1. Try mcp__rootly__listServices with the term as a filter where supported. If the MCP tool offers a name/query filter, use it; otherwise fetch the first 50 and match client-side (case-insensitive substring).
  2. If no service match, try mcp__rootly__listTeams similarly.
  3. If still no match, try mcp__rootly__listCatalogEntities (across all catalogs).

Determine the kind of the resolved entity (service, team, or catalog-entity) — branch the rendering on that.

If multiple matches, list the top 5 and ask the user to disambiguate. Do not guess.

If no matches, say so and suggest the user check spelling or try a broader term.

2. Gather details — service path

If the resolved entity is a service:

  1. Call mcp__rootly__getService for the full record. Capture: name, description, owning team, environment, slug, URL.
  2. Call mcp__rootly__getServiceUptimeChart for the last 30 days (if the MCP supports a period parameter; otherwise default).
  3. Call mcp__rootly__listIncidents with filter_service_ids=<id> and filter_status=started to surface active incidents on this service.
  4. If the service references an owning team, call mcp__rootly__getTeam for the team's name and mcp__rootly__get_oncall_schedule_summary (or mcp__rootly__get_oncall_handoff_summary) for current on-call.
  5. Optional: mcp__rootly__listIncidents filter by service in the last 90 days, page 1 only, to spot frequency.

3. Gather details — team path

If the resolved entity is a team:

  1. Call mcp__rootly__getTeam for the record. Capture name, description, slug, members count if available.
  2. Call mcp__rootly__listServices filtered by team to enumerate owned services.
  3. Call mcp__rootly__get_oncall_schedule_summary for current on-call across the team.
  4. Call mcp__rootly__listIncidents filtered by team and status=started for active incidents.

4. Gather details — catalog entity path

If the resolved entity is a catalog entity:

  1. Call mcp__rootly__getCatalogEntity for the full record.
  2. Note the catalog it belongs to (mcp__rootly__getCatalog if you need the catalog's name).
  3. Surface any service/team references in the entity's properties.

5. Render

Service rendering:

## Service: [name]*[slug] — [environment]*
### Ownership- **Team**: [team name]- **On-call right now**: [user name] (until [shift end])- **Backup**: [backup name if available]
### Recent Reliability (30 days)- Uptime: [percentage]- Incidents: [count] ([critical: N, high: N, medium: N])- MTTR: [duration]
### Active Incidents[If any:]- 🔴 [INC-XXXX] [title] — started [duration] ago[If none:]No active incidents.
### Description[service description]

Team rendering:

## Team: [name]*[slug] — [N members]*
### Owned Services ([N])- [service-name] ([environment])- [service-name] ([environment])[max 10, then "+N more"]
### Currently On-Call- [Schedule]: [user name] (until [time])
### Active Incidents ([N])- 🔴 [INC-XXXX] [title][If none: "No active incidents."]

Catalog entity rendering:

## [Catalog] Entity: [name]*[slug]*
### Properties- [key]: [value]- [key]: [value]
### Linked References[Any service/team links found]

6. Read-only

This skill never mutates Rootly state.

7. Error handling

  • If a downstream call fails (e.g. uptime chart API errors), render the rest of the data and add a one-line note: "[Section]: not available — [error]".
  • Don't fail the whole response because one optional chart didn't load.
  • If getCurrentUser is needed for context (and most cases don't require it), skip it.

Source and attribution

Source:Rootly-AI-Labs/rootly-claude-plugininskills/lookupat commit65832aa

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal