Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add sky-cloak/skycloak-mcp --skill enterprise-sso-rolloutgit clone --depth 1 https://github.com/sky-cloak/skycloak-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sky-cloak/skycloak-mcp/enterprise-sso-rollout)<a href="https://agentmods.dev/skills/sky-cloak/skycloak-mcp/enterprise-sso-rollout"><img src="https://agentmods.dev/badge/skills/sky-cloak/skycloak-mcp/enterprise-sso-rollout/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sky-cloak/skycloak-mcp/enterprise-sso-rollout"><img src="https://agentmods.dev/badge/skills/sky-cloak/skycloak-mcp/enterprise-sso-rollout.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00076 | $0.01111 |
| Opus 5 | $0.00038 | $0.00556 |
| Sonnet 5 | $0.00015 | $0.00222 |
| Haiku 4.5 | $0.00008 | $0.00111 |
Grade A, and why
enterprise-sso-rollout scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Enterprise SSO rollout
Brokering an external IdP into Keycloak fails in predictable places: the redirect URI, the issuer, the email claim, and the alias. This workflow front loads all four so the first real login works.
Step 1: establish the target
- Find the realm: skycloak_list_clusters, then skycloak_list_realms, then skycloak_get_realm to confirm it is enabled. If the realm name exists in more than one cluster, ask which one is meant.
- Call skycloak_list_identity_provider_templates and pick the template matching the upstream (for example microsoft-entra, google, okta). A template pre-fills endpoints and scopes; prefer it over a raw OIDC setup when one matches.
- Check what already exists with skycloak_list_identity_providers. A half-configured provider from an earlier attempt should be finished or removed, not duplicated under a second alias.
Step 2: validate the issuer before creating anything
Ask the user for the upstream issuer URL and run skycloak_discover_oidc on it. This catches the cheap failures before they are wired into a realm:
- Trailing slash and casing. The
issuervalue inside the discovery document must match what the tokens will carry, byte for byte. If discovery succeeds but the issuer differs from the URL the user gave, use the document's value. - Entra ID: use the tenant-specific endpoint
(
login.microsoftonline.com/<tenant-id>/v2.0), not/common. The common endpoint issues tokens whose issuer varies per tenant, which fails validation at the broker. - Okta: confirm whether the org authorization server or a custom one is intended; they have different issuers and different token contents.
Step 3: the upstream app registration
The customer's IdP admin must register Keycloak as a client. Hand them the
broker callback URL, which is
https://<keycloak-host>/realms/<realm>/broker/<alias>/endpoint:
- Choose the alias now and deliberately. It is case sensitive, it appears in every URL, and changing it later means re-registering the callback at the upstream and breaking existing federated links. Short, lowercase, stable.
- If the realm is served on a custom domain, check skycloak_list_domains and skycloak_get_domain for the verified hostname and register the callback on that host. A callback registered against the default hostname stops working the day traffic moves to the custom domain.
- The upstream registration must grant the
openid,emailandprofilescopes. A missing email claim is the most common cause of first logins stalling on an update-profile form or failing account linking outright.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 92 lines · 76 tokens per session scan A 4997cc45a131
enterprise-sso-rollout is a skill published in the GitHub repository sky-cloak/skycloak-mcp (0 stars, last pushed 5d ago), licensed Apache-2.0. It adds 76 tokens to every session and 1,111 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
golang-testing
Go testing patterns including table-driven tests, subtests, benchmarks, fuzzing, and test coverage. Follows TDD methodology with idiomatic Go practices.
golang-testing
Go testing best practices including table-driven tests, test helpers, benchmarking, race detection, coverage analysis, and integration testing patterns. Use when writing or improving Go tests.
ci
Configure Ginkgo for continuous integration — the recommended CLI flag set and the rationale for each flag (-r -p --randomize-all --randomize-suites --fail-on-pending --fail-on-empty --keep-going --cover --race --trace --json-report --timeout --poll-progress-after/-interval), invoking via go run to pin the CLI to…
golang-testing
Production-ready Golang tests — table-driven tests, testify suites and mocks, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, code coverage, integration tests, idiomatic test naming. Use when writing or reviewing Go tests, choosing a testing approach, setting up Go test CI…
flutter-mcp-toolkit-control
Drive a running Flutter app — tap, scroll, type, fill forms, hot-reload, navigate. Use when you need to interact with the UI.
harness-engineering-lifecycle
Design, implement, and integrate generalized validation harnesses across a producer-consumer boundary after a local harness contract exists. Use when refactoring custom validation CLIs/MCPs for large polyrepos, extending Steward across sibling repos, or deploying a local tool to a consumer project for dogfooding and…