Splunk On-Call Setup
Prerequisites
| Tool or access |
Purpose |
Verify |
| Bash and Python 3 |
Run bundled setup and validation helpers |
bash --version && python3 --version |
| Required product/platform access |
Inspect or configure the selected target |
Complete the documented preflight |
| Credential files for live modes |
Keep secrets out of chat |
Verify paths only |
Workflow Overview
┌───────────┐ ┌───────────────┐ ┌───────────────┐ ┌─────────────────┐
│ Preflight │ → │ Render/review │ → │ Apply/handoff │ → │ Validate evidence │
└───────────┘ └───────────────┘ └───────────────┘ └─────────────────┘
When to Activate
- Splunk On-Call, VictorOps, on-call schedules, escalation, paging, X-VO-Api-Id/X-VO-Api-Key, the
alert.victorops.com REST endpoint, or victorops_app.
- Preview and review the splunk oncall setup workflow before any live apply phase.
- Diagnose failed prerequisites, generated assets, configuration, or validation evidence.
Scope
Follow the documented read-only or render-first path whenever it is available.
This skill does not imply permission to mutate live systems. Require explicit
apply flags, protected credentials, and operator review for state changes.
Examples
Inspect the supported setup modes before selecting one:
bash skills/splunk-oncall-setup/scripts/setup.sh --help
Expected output: usage, supported modes, and required arguments are displayed
without changing the target environment.
Inspect validation modes before running completion checks:
bash skills/splunk-oncall-setup/scripts/validate.sh --help
Expected output: offline, live, and completion options are displayed when the
skill supports them; help exits without mutation.
Troubleshooting
| Issue |
Cause |
Resolution |
| Preflight fails |
A required tool or access path is missing |
Resolve it before rendering or applying |
| Rendered assets are incomplete |
Required non-secret inputs are absent |
Complete intake and render again |
| Apply is blocked |
Review, credentials, or explicit acceptance is missing |
Use the documented handoff |
| Validation is incomplete |
Live evidence is unavailable |
Record the gap and keep completion open |
Shared add-on completion gate
Whenever this workflow installs, configures, or hands off a Splunk-side
On-Call companion app, follow the
shared completion gate. Package delivery
alone is not success; validate alert ingestion/action behavior and shipped
views, or record explicit package evidence that no dashboards ship.
Use this skill for all Splunk On-Call operations: SaaS object management
through the public API, the REST Endpoint Integration alert path, the Generic
Email Endpoint Integration, and Splunk-side companion apps.
The workflow is render-first by default. Live API changes only happen when the
user explicitly asks for --apply, --send-alert, --install-splunk-app, or
--uninstall.
Coverage Model
Every rendered object gets an explicit coverage status:
api_apply: a documented public API supports create, update, delete, or
validate.
api_validate: a documented public API supports read or validation only.
deeplink: the skill renders a deterministic Splunk On-Call UI link and
validates referenced data where an API allows.
handoff: the skill renders deterministic operator steps for UI-only,
Support-driven, or app-side workflows.
install_apply: the skill installs or configures a Splunk-side companion
app or saved search via Splunkbase + REST (Splunkbase 3546 and 4886).
Splunkbase 5863 is a Splunk SOAR connector and remains an explicit SOAR
handoff rather than a Splunk Platform install. Splunk Platform/Cloud 10.5
compatibility is therefore not applicable to 5863; validate it against
the connector's listed Splunk SOAR versions instead.
Do not mark UI-only workflows as api_apply.
Safety Rules
- Never ask for Splunk On-Call API keys, REST endpoint integration keys,
passwords, or client secrets in conversation.
- Never pass keys, integration URLs, or any secret on the command line or as
an environment-variable prefix.
- Use
--api-key-file for the Splunk On-Call API key (X-VO-Api-Key).
- Use
--integration-key-file for the REST Endpoint Integration key.
- Prefer
SPLUNK_ONCALL_API_ID, SPLUNK_ONCALL_API_KEY_FILE, and
SPLUNK_ONCALL_REST_INTEGRATION_KEY_FILE from the repo credentials file
when present.
- Reject direct secret flags such as
--api-key, --vo-api-key,
--x-vo-api-key, --integration-key, --rest-key, --token, and
--password.
- Refuse zero-byte or world/group-readable secret files.
- Strip every secret from
apply-plan.json, payloads/, and any rendered
artifact on disk.
Primary Workflow
Collect non-secret values: organization slug, API ID, team / user / policy
names, rotation members, routing keys, alert-rule match patterns,
maintenance routing-key list, REST integration default routing key, etc.
Create or update a JSON/YAML spec using
templates/oncall.example.yaml as the starting point.
Render and validate:
bash skills/splunk-oncall-setup/scripts/setup.sh \
--render \
--validate \
--spec skills/splunk-oncall-setup/templates/oncall.example.yaml \
--output-dir splunk-oncall-rendered
Review coverage-report.json, apply-plan.json, deeplinks.json, and
handoff.md.
Apply only when explicitly requested:
bash skills/splunk-oncall-setup/scripts/setup.sh \
--apply \
--spec skills/splunk-oncall-setup/templates/oncall.example.yaml \
--api-id "$SPLUNK_ONCALL_API_ID" \
--api-key-file /tmp/splunk_oncall_api_key
To send a single REST endpoint alert (after extracting the integration key
from the On-Call UI Integrations > 3rd Party Integrations > REST Generic
page):
bash skills/splunk-oncall-setup/scripts/setup.sh \
--send-alert \
--rest-alert-spec skills/splunk-oncall-setup/templates/rest-alert.example.yaml \
--integration-key-file /tmp/splunk_oncall_rest_key \
--routing-key database
To install or refresh the Splunk-side companion apps:
bash skills/splunk-oncall-setup/scripts/setup.sh \
--install-splunk-app \
--spec skills/splunk-oncall-setup/templates/splunk-side.example.yaml \
--api-id "$SPLUNK_ONCALL_API_ID" \
--api-key-file /tmp/splunk_oncall_api_key
Supported Sections
Specs use api_version: splunk-oncall-setup/v1 and can include:
users — users + contact methods (devices, emails, phones), with role ∈
global_admin | alert_admin | team_admin | user | stakeholder.
teams — teams plus members and admins.
rotations — per-team rotation groups and shifts.
escalation_policies — ordered steps with timeouts and User,
Team, EscalationPolicy, or RotationGroup targets.
routing_keys — routing-key to escalation-policy maps.
paging_policies — personal (full CRUD) and team (read/validate only).
scheduled_overrides — single overrides with per-policy assignments.
alert_rules — Rules Engine rules with matchType ∈ WILDCARD | REGEX,
rank, stopFlag, routeKey, multi-rule annotations (URL / note / image),
and rules-engine variable expansion (e.g. ${{fieldName}}).
maintenance_mode — start, end, and status checks.
incidents — explicit-apply create / ack / resolve / reroute / by-user
variants. Supports isMultiResponder and state_start_time. UI-only
snooze and add responder actions are rendered as Team Dashboard
deeplinks.
notes — per-incident note CRUD.
chat_messages — /v1/chat posts (explicit-apply).
stakeholder_messages — /v1/stakeholders/sendMessage posts.
webhooks — read-only inventory plus rendered outbound-webhook drop-in
objects for the documented event types (Any-Incident,
Incident-Triggered, Incident-Acknowledged, Incident-Resolved,
Incident-Chats, All-Chats, Any-On-Call, On-Call, Off-Call,
Any-Paging, Paging-Start, Paging-Stop). Outbound webhook creation
remains a handoff because the public API only exposes GET /v1/webhooks,
and the feature requires an Enterprise plan.
reporting — api-reporting/v1/team/{team}/oncall/log (shift changes) and
api-reporting/v2/incidents (incident history; rate-limited at 1
call/minute).
schedules — GET /api-public/v2/team/{team}/oncall/schedule?daysForward=N
and GET /api-public/v2/user/{user}/oncall/schedule.
rest_alerts — REST endpoint alert payloads (all message_type values,
canonical incident fields glossary, URL/note/image annotations).
email_alerts — Generic Email Endpoint Integration handoff for email-only
monitoring tools.
integrations — UI-only handoffs for Slack, Microsoft Teams, Webex Teams,
ServiceNow (bidirectional), Statuspage, Twilio Live Call Routing, and
Conference Bridges (Enterprise tier).
sso — UI/Support handoff that renders the SP-initiated URL pattern
https://portal.victorops.com/auth/sso/<org-slug> and the Splunk Support
ticket template.
reports — deeplinks for Post-Incident Review (PIR), On-Call Review,
MTTA/MTTR, Team Dashboard, and Similar Incidents (NLP grouping).
calendars — iCal feed export handoff for team and personal calendars.
mobile — per-user mobile app setup checklist (iOS Critical Alerts,
Android 13+ requirement).
recovery_polling — toggles the Splunkbase 3546 victorops-alert-recovery
scheduled saved search and the alert action's enable_recovery,
poll_interval, and inactive_polls parameters so a Splunk-driven
CRITICAL incident is auto-resolved on the On-Call side once the underlying
search no longer fires.
splunk_side — Splunkbase 3546 alert-action install on a search head or
SHC deployer, Splunkbase 4886 Add-on placement on a heavy forwarder with
the four required indexes (victorops_users, victorops_teams,
victorops_oncall, victorops_incidents) pre-created, ITSI NEAP wiring,
ES Adaptive Response wiring, Splunkbase 5863 SOAR connector readiness, and
Splunk Observability detector recipient deeplink.
For API endpoint details, rate limits, and current support boundaries, read
references/coverage.md, references/rate-limits.md,
references/splunk-side-apps.md, and references/recovery-polling.md when
the request touches a new or ambiguous surface.
Out of Scope
- On-Call mobile-app push enrollment (UI-only; the skill only renders the
per-user setup checklist).
- Billing, subscription, or trial provisioning changes.
- Slack / Microsoft Teams / Webex Teams chat-app installation on the chat
side (rendered as deeplink handoffs only). The chat sender via
/v1/chat
and the stakeholder sender via /v1/stakeholders/sendMessage are in scope.
- ServiceNow bidirectional, Statuspage, and Twilio Live Call Routing setup
steps (rendered as deeplink handoffs).
- Conference Bridges feature requires Enterprise tier; the skill renders a
handoff but does not gate on tier.
- SAML SSO activation is completed by Splunk On-Call Support — the skill
renders the SP-initiated URL pattern, IdP metadata XML drop-off steps, and
a Splunk Support ticket template, but cannot turn SSO on via API.
- Reports (Post-Incident Review, On-Call Review, MTTA/MTTR, Team Dashboard,
Similar Incidents) are rendered as deeplinks; no API write surface exists.
- Outbound webhook creation is rendered as inventory + handoff because the
public API only exposes
GET /v1/webhooks.
Compliance and Security Baseline
Splunk On-Call enforces TLS 1.2+ in transit and AES-256 at rest, and partner
clouds are FedRAMP / PCI-DSS / ISO 27001:2013 certified; HIPAA usage is
supported via a Business Associate Agreement (BAA).
FedRAMP / IL5 caveat: Splunk Cloud Platform itself is FedRAMP Moderate
authorized and DoD IL5 provisionally authorized, but Splunk On-Call is not
separately listed in the public FedRAMP/IL5 docs as of this skill's authoring.
The skill renders an explicit warning when a US public-sector spec is
detected and links to Splunk Cloud Platform IL5 documentation for
parallel-stack guidance.
The skill never asks for nor logs secret material, refuses any direct secret
CLI flag, and redacts all X-VO-Api-Key, integration-key, and rendered
payload secrets from artifacts on disk.
MCP Tools
This skill includes checked-in, read-only Splunk MCP custom tools generated
from mcp_tools.source.yaml.
Validate or regenerate the tool artifact:
python3 skills/shared/scripts/mcp_tools.py validate skills/splunk-oncall-setup
python3 skills/shared/scripts/mcp_tools.py generate skills/splunk-oncall-setup
Load the tools into Splunk MCP Server:
bash skills/splunk-oncall-setup/scripts/load_mcp_tools.sh
The loader uses the supported /mcp_tools REST batch endpoint by default. Use
--allow-legacy-kv only for older MCP Server app versions that lack that
endpoint.
1---2name: splunk-oncall-setup3description: Use when the user asks about Splunk On-Call, VictorOps, on-call schedules, escalation, paging, X-VO-Api- Id/X-VO-Api-Key, the alert.victorops.com REST endpoint, or victorops_app. Render, validate, and apply the full Splunk On-Call (formerly VictorOps) lifecycle — teams, users + contact methods, rotations, escalation policies, routing keys, scheduled overrides, personal paging policies, alert rules / Rules Engine, maintenance mode, incidents, notes, chat, stakeholder messages, REST endpoint and generic email alert payloads — plus Splunk-side companions (Splunkbase 3546 alert action, 4886 Add-on, 5863 SOAR connector, ITSI NEAP, ES Adaptive Response).4---56# Splunk On-Call Setup78## Prerequisites910| Tool or access | Purpose | Verify |11|---|---|---|12| Bash and Python 3 | Run bundled setup and validation helpers | `bash --version && python3 --version` |13| Required product/platform access | Inspect or configure the selected target | Complete the documented preflight |14| Credential files for live modes | Keep secrets out of chat | Verify paths only |1516## Workflow Overview1718```text19┌───────────┐ ┌───────────────┐ ┌───────────────┐ ┌─────────────────┐20│ Preflight │ → │ Render/review │ → │ Apply/handoff │ → │ Validate evidence │21└───────────┘ └───────────────┘ └───────────────┘ └─────────────────┘22```2324## When to Activate2526- Splunk On-Call, VictorOps, on-call schedules, escalation, paging, X-VO-Api-Id/X-VO-Api-Key, the27 alert.victorops.com REST endpoint, or victorops_app.28- Preview and review the splunk oncall setup workflow before any live apply phase.29- Diagnose failed prerequisites, generated assets, configuration, or validation evidence.3031## Scope3233Follow the documented read-only or render-first path whenever it is available.34This skill does not imply permission to mutate live systems. Require explicit35apply flags, protected credentials, and operator review for state changes.3637## Examples3839Inspect the supported setup modes before selecting one:4041```bash42bash skills/splunk-oncall-setup/scripts/setup.sh --help43```4445Expected output: usage, supported modes, and required arguments are displayed46without changing the target environment.4748Inspect validation modes before running completion checks:4950```bash51bash skills/splunk-oncall-setup/scripts/validate.sh --help52```5354Expected output: offline, live, and completion options are displayed when the55skill supports them; help exits without mutation.5657## Troubleshooting5859| Issue | Cause | Resolution |60|---|---|---|61| Preflight fails | A required tool or access path is missing | Resolve it before rendering or applying |62| Rendered assets are incomplete | Required non-secret inputs are absent | Complete intake and render again |63| Apply is blocked | Review, credentials, or explicit acceptance is missing | Use the documented handoff |64| Validation is incomplete | Live evidence is unavailable | Record the gap and keep completion open |6566## Shared add-on completion gate6768Whenever this workflow installs, configures, or hands off a Splunk-side69On-Call companion app, follow the70[shared completion gate](../shared/ta_completion_gate.md). Package delivery71alone is not success; validate alert ingestion/action behavior and shipped72views, or record explicit package evidence that no dashboards ship.7374Use this skill for **all** Splunk On-Call operations: SaaS object management75through the public API, the REST Endpoint Integration alert path, the Generic76Email Endpoint Integration, and Splunk-side companion apps.7778The workflow is render-first by default. Live API changes only happen when the79user explicitly asks for `--apply`, `--send-alert`, `--install-splunk-app`, or80`--uninstall`.8182## Coverage Model8384Every rendered object gets an explicit coverage status:8586- `api_apply`: a documented public API supports create, update, delete, or87 validate.88- `api_validate`: a documented public API supports read or validation only.89- `deeplink`: the skill renders a deterministic Splunk On-Call UI link and90 validates referenced data where an API allows.91- `handoff`: the skill renders deterministic operator steps for UI-only,92 Support-driven, or app-side workflows.93- `install_apply`: the skill installs or configures a Splunk-side companion94 app or saved search via Splunkbase + REST (Splunkbase 3546 and 4886).95 Splunkbase 5863 is a Splunk SOAR connector and remains an explicit SOAR96 handoff rather than a Splunk Platform install. Splunk Platform/Cloud `10.5`97 compatibility is therefore **not applicable** to `5863`; validate it against98 the connector's listed Splunk SOAR versions instead.99100Do not mark UI-only workflows as `api_apply`.101102## Safety Rules103104- Never ask for Splunk On-Call API keys, REST endpoint integration keys,105 passwords, or client secrets in conversation.106- Never pass keys, integration URLs, or any secret on the command line or as107 an environment-variable prefix.108- Use `--api-key-file` for the Splunk On-Call API key (`X-VO-Api-Key`).109- Use `--integration-key-file` for the REST Endpoint Integration key.110- Prefer `SPLUNK_ONCALL_API_ID`, `SPLUNK_ONCALL_API_KEY_FILE`, and111 `SPLUNK_ONCALL_REST_INTEGRATION_KEY_FILE` from the repo `credentials` file112 when present.113- Reject direct secret flags such as `--api-key`, `--vo-api-key`,114 `--x-vo-api-key`, `--integration-key`, `--rest-key`, `--token`, and115 `--password`.116- Refuse zero-byte or world/group-readable secret files.117- Strip every secret from `apply-plan.json`, `payloads/`, and any rendered118 artifact on disk.119120## Primary Workflow1211221. Collect non-secret values: organization slug, API ID, team / user / policy123 names, rotation members, routing keys, alert-rule match patterns,124 maintenance routing-key list, REST integration default routing key, etc.1252. Create or update a JSON/YAML spec using126 `templates/oncall.example.yaml` as the starting point.1273. Render and validate:128129 ```bash130 bash skills/splunk-oncall-setup/scripts/setup.sh \131 --render \132 --validate \133 --spec skills/splunk-oncall-setup/templates/oncall.example.yaml \134 --output-dir splunk-oncall-rendered135 ```1361374. Review `coverage-report.json`, `apply-plan.json`, `deeplinks.json`, and138 `handoff.md`.1395. Apply only when explicitly requested:140141 ```bash142 bash skills/splunk-oncall-setup/scripts/setup.sh \143 --apply \144 --spec skills/splunk-oncall-setup/templates/oncall.example.yaml \145 --api-id "$SPLUNK_ONCALL_API_ID" \146 --api-key-file /tmp/splunk_oncall_api_key147 ```1481496. To send a single REST endpoint alert (after extracting the integration key150 from the On-Call UI Integrations > 3rd Party Integrations > REST Generic151 page):152153 ```bash154 bash skills/splunk-oncall-setup/scripts/setup.sh \155 --send-alert \156 --rest-alert-spec skills/splunk-oncall-setup/templates/rest-alert.example.yaml \157 --integration-key-file /tmp/splunk_oncall_rest_key \158 --routing-key database159 ```1601617. To install or refresh the Splunk-side companion apps:162163 ```bash164 bash skills/splunk-oncall-setup/scripts/setup.sh \165 --install-splunk-app \166 --spec skills/splunk-oncall-setup/templates/splunk-side.example.yaml \167 --api-id "$SPLUNK_ONCALL_API_ID" \168 --api-key-file /tmp/splunk_oncall_api_key169 ```170171## Supported Sections172173Specs use `api_version: splunk-oncall-setup/v1` and can include:174175- `users` — users + contact methods (devices, emails, phones), with `role` ∈176 `global_admin | alert_admin | team_admin | user | stakeholder`.177- `teams` — teams plus members and admins.178- `rotations` — per-team rotation groups and shifts.179- `escalation_policies` — ordered steps with timeouts and `User`,180 `Team`, `EscalationPolicy`, or `RotationGroup` targets.181- `routing_keys` — routing-key to escalation-policy maps.182- `paging_policies` — `personal` (full CRUD) and `team` (read/validate only).183- `scheduled_overrides` — single overrides with per-policy assignments.184- `alert_rules` — Rules Engine rules with `matchType` ∈ `WILDCARD | REGEX`,185 `rank`, `stopFlag`, `routeKey`, multi-rule annotations (URL / note / image),186 and rules-engine variable expansion (e.g. `${{fieldName}}`).187- `maintenance_mode` — start, end, and status checks.188- `incidents` — explicit-apply create / ack / resolve / reroute / by-user189 variants. Supports `isMultiResponder` and `state_start_time`. UI-only190 `snooze` and `add responder` actions are rendered as Team Dashboard191 deeplinks.192- `notes` — per-incident note CRUD.193- `chat_messages` — `/v1/chat` posts (explicit-apply).194- `stakeholder_messages` — `/v1/stakeholders/sendMessage` posts.195- `webhooks` — read-only inventory plus rendered outbound-webhook drop-in196 objects for the documented event types (`Any-Incident`,197 `Incident-Triggered`, `Incident-Acknowledged`, `Incident-Resolved`,198 `Incident-Chats`, `All-Chats`, `Any-On-Call`, `On-Call`, `Off-Call`,199 `Any-Paging`, `Paging-Start`, `Paging-Stop`). Outbound webhook *creation*200 remains a `handoff` because the public API only exposes `GET /v1/webhooks`,201 and the feature requires an Enterprise plan.202- `reporting` — `api-reporting/v1/team/{team}/oncall/log` (shift changes) and203 `api-reporting/v2/incidents` (incident history; rate-limited at 1204 call/minute).205- `schedules` — `GET /api-public/v2/team/{team}/oncall/schedule?daysForward=N`206 and `GET /api-public/v2/user/{user}/oncall/schedule`.207- `rest_alerts` — REST endpoint alert payloads (all `message_type` values,208 canonical incident fields glossary, URL/note/image annotations).209- `email_alerts` — Generic Email Endpoint Integration handoff for email-only210 monitoring tools.211- `integrations` — UI-only handoffs for Slack, Microsoft Teams, Webex Teams,212 ServiceNow (bidirectional), Statuspage, Twilio Live Call Routing, and213 Conference Bridges (Enterprise tier).214- `sso` — UI/Support handoff that renders the SP-initiated URL pattern215 `https://portal.victorops.com/auth/sso/<org-slug>` and the Splunk Support216 ticket template.217- `reports` — deeplinks for Post-Incident Review (PIR), On-Call Review,218 MTTA/MTTR, Team Dashboard, and Similar Incidents (NLP grouping).219- `calendars` — iCal feed export handoff for team and personal calendars.220- `mobile` — per-user mobile app setup checklist (iOS Critical Alerts,221 Android 13+ requirement).222- `recovery_polling` — toggles the Splunkbase 3546 `victorops-alert-recovery`223 scheduled saved search and the alert action's `enable_recovery`,224 `poll_interval`, and `inactive_polls` parameters so a Splunk-driven225 CRITICAL incident is auto-resolved on the On-Call side once the underlying226 search no longer fires.227- `splunk_side` — Splunkbase 3546 alert-action install on a search head or228 SHC deployer, Splunkbase 4886 Add-on placement on a heavy forwarder with229 the four required indexes (`victorops_users`, `victorops_teams`,230 `victorops_oncall`, `victorops_incidents`) pre-created, ITSI NEAP wiring,231 ES Adaptive Response wiring, Splunkbase 5863 SOAR connector readiness, and232 Splunk Observability detector recipient deeplink.233234For API endpoint details, rate limits, and current support boundaries, read235`references/coverage.md`, `references/rate-limits.md`,236`references/splunk-side-apps.md`, and `references/recovery-polling.md` when237the request touches a new or ambiguous surface.238239## Out of Scope240241- On-Call mobile-app push enrollment (UI-only; the skill only renders the242 per-user setup checklist).243- Billing, subscription, or trial provisioning changes.244- Slack / Microsoft Teams / Webex Teams chat-app *installation* on the chat245 side (rendered as deeplink handoffs only). The chat sender via `/v1/chat`246 and the stakeholder sender via `/v1/stakeholders/sendMessage` are in scope.247- ServiceNow bidirectional, Statuspage, and Twilio Live Call Routing setup248 steps (rendered as deeplink handoffs).249- Conference Bridges feature requires Enterprise tier; the skill renders a250 handoff but does not gate on tier.251- SAML SSO activation is completed by Splunk On-Call Support — the skill252 renders the SP-initiated URL pattern, IdP metadata XML drop-off steps, and253 a Splunk Support ticket template, but cannot turn SSO on via API.254- Reports (Post-Incident Review, On-Call Review, MTTA/MTTR, Team Dashboard,255 Similar Incidents) are rendered as deeplinks; no API write surface exists.256- Outbound webhook *creation* is rendered as inventory + handoff because the257 public API only exposes `GET /v1/webhooks`.258259## Compliance and Security Baseline260261Splunk On-Call enforces TLS 1.2+ in transit and AES-256 at rest, and partner262clouds are FedRAMP / PCI-DSS / ISO 27001:2013 certified; HIPAA usage is263supported via a Business Associate Agreement (BAA).264265**FedRAMP / IL5 caveat:** Splunk Cloud Platform itself is FedRAMP Moderate266authorized and DoD IL5 provisionally authorized, but Splunk On-Call is not267separately listed in the public FedRAMP/IL5 docs as of this skill's authoring.268The skill renders an explicit warning when a US public-sector spec is269detected and links to Splunk Cloud Platform IL5 documentation for270parallel-stack guidance.271272The skill never asks for nor logs secret material, refuses any direct secret273CLI flag, and redacts all `X-VO-Api-Key`, integration-key, and rendered274payload secrets from artifacts on disk.275276## MCP Tools277278This skill includes checked-in, read-only Splunk MCP custom tools generated279from `mcp_tools.source.yaml`.280281Validate or regenerate the tool artifact:282283```bash284python3 skills/shared/scripts/mcp_tools.py validate skills/splunk-oncall-setup285python3 skills/shared/scripts/mcp_tools.py generate skills/splunk-oncall-setup286```287288Load the tools into Splunk MCP Server:289290```bash291bash skills/splunk-oncall-setup/scripts/load_mcp_tools.sh292```293294The loader uses the supported `/mcp_tools` REST batch endpoint by default. Use295`--allow-legacy-kv` only for older MCP Server app versions that lack that296endpoint.