Agent skills that teach any skill-compatible AI agent how to manage StreamNative Cloud resources through StreamNative Cloud remote MCP tools or the snctl CLI. Distributed as the streamnative-agent-skills plugin. Built to the agentskills spec; installable as a Claude Code plugin or as portable skill directories in Cursor, Gemini CLI, OpenCode, Goose, Codex, and more.
At a glance: 7 domain skills · 48 guided workflows · 33 reference docs · 22 starter YAML manifests · 7 snctl smoke walkthroughs · 7 remote MCP smoke walkthroughs · 16 machine-readable smoke specs.
After installing the plugin and setting up snctl, just ask your agent in natural language:
Create a serverless Pulsar instance named events in us-east-1.
Give me a service account with admin access and export its key.
Create a 3-partition Kafka topic user-events and produce 10 test messages.
Set up BYOC to my AWS account 123456789012 with a VPC in eu-west-1.
Deploy a Pulsar Function from word-count.jar that reads from topic in and writes to out.
The right skill activates based on the request. You never invoke skills explicitly — the agent picks.
Pick one execution base:
- Remote MCP (preferred when your agent exposes MCP tools): connect the StreamNative Cloud remote MCP server with org-level Cloud tools and/or fixed cluster-level Pulsar/Kafka tools enabled. Remote MCP server is public preview and disabled by default; org-level MCP and cluster-level MCP are both disabled by default and must be enabled separately in StreamNative Cloud UI. New clusters also start with cluster-level MCP disabled. The skills use
sncloud_*,pulsar_*, andkafka_*MCP tools when available. snctlfallback/baseline: install and authenticatesnctl.Or via Homebrew:curl -fsSL https://downloads.streamnative.cloud/snctl/install.sh | shAuthenticate:brew install streamnative/streamnative/snctl
- Interactive:
snctl auth login - Automation:
snctl auth activate-service-account --key-file ./key.json
- Interactive:
Remote MCP cannot cover every local credential flow yet; keep snctl available for API keys, Cloud Secrets, service-account key export/activation, and local config/token tasks.
/plugin marketplace add streamnative/streamnative-agent-skills
/plugin install streamnative-agent-skills
Registers all seven currently documented skills at once. Plugin metadata: .claude-plugin/plugin.json.
Clone the repo and point your agent at the relevant skills/<skill-name>/ directory. Each skill is a self-contained agentskills package.
git clone https://github.com/streamnative/streamnative-agent-skills.git
# Follow your tool's "add skill" flow (Cursor, Gemini CLI, OpenCode, Goose, Codex, etc.)Copy a single skills/<skill-name>/ directory into the agent's skills directory.
| Skill | Workflows | Covers | Activates on |
|---|---|---|---|
| cloud-core | 7 | Install, auth, config, context, API resources, logs | "install snctl", "log in", "switch org", "service account" |
| byoc-infrastructure | 6 | Cloud connections, environments, tiered-storage volumes | "BYOC", "my AWS/GCP/Azure account", "VPC CIDR", "tiered storage" |
| pulsar-clusters | 6 | Pulsar instance/cluster/gateway — serverless, dedicated, BYOC, BYOC Pro | "create cluster", "pulsarinstance", "scale brokers", "gateway" |
| kafka-clusters | 7 | Kafka Instance/KafkaCluster — dedicated, BYOC, BYOC Pro, AuthV2 contexts | "kafkacluster", "Kafka cluster", "throughput unit", "Kafka service context" |
| identity | 7 | Users, service accounts, roles, API keys, secrets, OIDC, identity pools | "grant access", "API key", "role binding", "OIDC", "federated login" |
| pulsar-admin | 8 | Tenants, namespaces, topics, subscriptions, Pulsar Functions | "tenant", "namespace", "topic", "produce/consume", "Pulsar function" |
| kafka-admin | 7 | Kafka topics, groups, partitions, Schema Registry, Kafka Connect | "Kafka topic", "consumer group", "schema registry", "Kafka Connect" |
- Remote MCP: first-class route when agent runtime exposes StreamNative Cloud remote MCP tools. Org-level control-plane uses domain tools such as
sncloud_byoc_read/write,sncloud_identity_read/write,sncloud_clusters_read/write, plussncloud_resource_catalogandsncloud_resource_schema. Data-plane admin uses feature-gated Pulsar/Kafka MCP tools after fixed cluster binding orsncloud_context_use_cluster; both require cluster-level MCP enabled for the target cluster in StreamNative Cloud UI. snctl: portable fallback route and baseline for local credential/config operations and workflows not exposed by remote MCP.
Remote MCP write tools expect JSON-string manifests and a dry-run-first workflow. Do not use generic sncloud_resources_* names; current public contract is domain-scoped.
Every manageable control-plane resource kind is owned by exactly one skill:
- Foundational:
CloudConnection,CloudEnvironment,Volume - Pulsar infrastructure:
PulsarInstance,PulsarCluster,PulsarGateway - Kafka infrastructure:
Instance,KafkaCluster, controller-managedSnSchemaRegistry - Identity & access:
User,ServiceAccount,ServiceAccountBinding,Role,RoleBinding,APIKey,Secret,OIDCProvider,IdentityPool - Messaging:
Subscription(control-plane kind)
PulsarInstance supports serverless, dedicated, BYOC, and BYOC Pro. Kafka Instance / KafkaCluster currently supports dedicated, dedicated-pro, BYOC, and BYOC Pro; serverless KafkaCluster is not supported today.
- Pulsar: tenants, namespaces, topics (persistent + non-persistent, partitioned + non-partitioned), subscriptions (all 4 types), permissions, Pulsar Functions, produce/consume.
- Kafka: topics, consumer groups, partitions, Schema Registry (AVRO / JSON / Protobuf), produce/consume. Kafka Connect is available for PulsarCluster/KSN contexts; direct KafkaCluster contexts may not expose Connect.
scripts/install-snctl.sh— install a pinnedsnctlfrom the canonical GCS bucket.scripts/validate-skills.sh— validate every skill against the agentskills spec (name/dir parity, description presence, ≤500-line body).scripts/check-help-drift.sh— parse everysnctl …command cited in SKILL.md files and run--helpagainst your installed version to catch drift.scripts/check-manifests.sh— dry-runsnctl apply -fon every shipped YAML manifest.- GitHub Actions workflow that runs the three checkers on every PR.
Skills are Markdown documents with YAML frontmatter. They live in skills/<name>/SKILL.md plus adjacent references/ and assets/ directories.
Agents load content lazily to keep the context window small:
- Metadata tier (~100 tokens per skill): only
name+descriptionare pre-loaded. The agent uses these to decide activation. - Instructions tier (≤500 lines per skill): full
SKILL.mdbody loads only when the skill activates for a request. - References tier: files under
references/and manifests underassets/manifests/load only when the body explicitly points to them.
Result: a user asking "create a Kafka topic" only pays the token cost for kafka-admin, not all 7 skills at once.
- User sends a request.
- Agent matches the request against every skill's
descriptionfield. - Best-matching skill activates → body loads.
- If the body says "see
references/foo.mdfor X", the agent loads that file only when X comes up. - Agent uses available StreamNative Cloud remote MCP tools, or runs
snctlcommands from its shell tool, following the skill's workflows, flags, and pitfalls.
- One resource kind = one owning skill. No duplication.
- Cross-skill referrals are explicit. E.g.,
pulsar-clusterstells the agent to openbyoc-infrastructurefirst when the user wants a BYOC deployment. - Description strings are keyword-distinct to prevent collisions (e.g., Pulsar Functions appear in two skills but each disclaims the other in its description).
See the design spec for the full ownership table and decomposition rationale.
The skills ship expert procedural knowledge; the agent uses its own MCP or shell tools directly. This keeps skills portable across every agentskills-compatible agent without requiring a script runtime. scripts/ is reserved for future opt-in.
- Design spec: docs/superpowers/specs/ — decomposition decisions, ownership table.
- Implementation plan: docs/superpowers/plans/ — task-by-task build order.
- Smoke-test walkthroughs: docs/smoke-tests/ —
snctlroute acceptance criteria. - Machine-readable smoke specs: tests/smoke-specs/ — runnable with
scripts/smoke-runner.py; require real test/staging credentials for non---dry-runexecution. - Smoke benchmark reports:
scripts/benchmark-report.pyaggregates smoke-runnersummary.jsonfiles intoreports/benchmark-<timestamp>.{json,md,csv}for same-casesnctlvs remote MCP token/time comparisons. The runner can invoke Claude Code or Codex adapters. - Remote MCP smoke-test walkthroughs: docs/smoke-tests/remote-mcp/ — MCP route acceptance criteria.
- CI:
.github/workflows/validate.yml— runs the three scripts on every PR.
./scripts/install-snctl.sh # or skip if snctl already on PATH
./scripts/validate-skills.sh # agentskills spec + structural
./scripts/check-help-drift.sh # every cited snctl command exists
./scripts/check-manifests.sh # every shipped YAML dry-runsSee CONTRIBUTING.md.
- Plugin: semver, bumped on any skill change (starts at
0.1.0). - Each skill: its own
metadata.versionin frontmatter, bumped when that skill's content changes. - snctl compatibility: each skill pins
snctl-min-versionin frontmatter. The current floor is1.5.0— aligned with whensnctl contextstabilized.
Apache-2.0. See LICENSE.