cb-analytics-admin
Use this skill when the user wants to inspect or manage the Analytics service's runtime — checking ingestion health, killing…
Use this skill when the user wants to manage Couchbase users, groups, roles, or check permissions on the cluster — creating service accounts, rotating passwords, granting analytics privileges, or auditing who can do what. Trigger when they mention "user", "group", "role",
Claude Code
$ npx -y skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-security --agent claude-code
Codex
$ npx skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-security -a codex -y
Cursor
$ npx skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-security -a cursor -y
Gemini CLI
$ npx skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-security -a gemini-cli -y
GitHub Copilot
$ npx skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-security -a github-copilot -y
OpenCode
$ npx skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-security -a opencode -y
Windsurf
$ npx skills add celticht32/Couchbase-Skills-for-Claude.ai --skill cb-analytics-security -a windsurf -y
name: cb-analytics-security description: | Use this skill when the user wants to manage Couchbase users, groups, roles, or check permissions on the cluster — creating service accounts, rotating passwords, granting analytics privileges, or auditing who can do what. Trigger when they mention "user", "group", "role", "RBAC", "permission", "upsert_user", "check_permissions", "local domain", "external domain", or "analytics_reader" / "analytics_admin". license: MIT
You have 9 RBAC tools: list/get/upsert/delete user, list/upsert/delete group, list roles, and check permissions.
Couchbase users live in one of two domains:
role bindings.
Every user-related tool takes a `domain` argument. If you list users without a domain you get both.
`roles` is a single comma-separated string, never a list. Each role can be unscoped or scoped:
analytics_reader[*] # all buckets analytics_select[bucket1] # one bucket analytics_select[bucket1:scope1] # one scope analytics_admin[*],query_select[bucket1] # multiple roles
Use `list_roles()` first if you don't know what's available — it returns every role the cluster supports, with descriptions.
For Claude itself, or any automation, create a least-privileged user:
upsert_user(
domain="local",
username="cb-mcp",
roles="analytics_reader[*],analytics_select[*]",
password="<generated>",
full_name="cb-analytics-mcp service account"
)**Never** use `analytics_admin` or `cluster_admin` for the MCP server's cluster credentials in production. Grant only what the workflow needs.
The password is passed as a plain string into the tool and immediately wrapped in `SecretStr` inside the impl, then unwrapped only at the HTTP boundary. The audit log redacts it. That said:
`check_permissions(permissions="cluster.analytics!read,cluster.admin!write")` returns a dict mapping each permission to `true`/`false` for the currently authenticated user (the one in `CB_ANALYTICS_USERNAME`). Use this when:
is the cause.
Groups bundle role assignments and apply them to multiple users. Workflow:
1. `upsert_group("analytics-readers", roles="analytics_reader[*]", description="Read-only analytics users")` 2. `upsert_user(..., roles="local:analytics-readers")` to assign by group reference (Couchbase 7.2+).
active requests).
a secrets manager instead.
side channel (1Password, vault, etc.) and ask the user to confirm it's stored.
Security/RBAC tools split across two categories:
`list_roles`, `check_permissions`.
`upsert_group`, `delete_group`.
The 1/sec write limit is deliberate — RBAC changes are durable cluster state and the typical error mode is "did something irreversible quickly". Bulk-provisioning users from a roster? Sequence them, accept the ~1 second per user.
If `RateLimitExceeded` comes back on an `upsert_user` or `delete_user`, honour `retry_after_sec`. Don't retry-storm.
Reads (`list_users`, `check_permissions`, etc.) share the global `read` bucket. If you're auditing a permissions matrix, batch — one `list_users` then targeted `check_permissions` calls is friendlier than calling `get_user` per user-per-role combination.
Worth noting: rate limits are per **API key**, not per cluster. If a single bearer token is doing both heavy RBAC bulk-load AND read-heavy inspection at the same time, they contend for separate buckets, but the bulk-load can starve other writes on the same key. Use distinct API keys per workload if this matters.
Claude skill files for working with Couchbase — covering every major service and deployment pattern from application integration through AI applications, Kubernetes operations, mobile sync, security hardening, and analytics.
Use this skill when the user wants to inspect or manage the Analytics service's runtime — checking ingestion health, killing…
Use this skill when the user wants to manage Couchbase Capella resources through the Cloud Management API — listing organisations…
Use this skill when the user wants to inspect or configure the Couchbase cluster itself — node membership, memory quotas,…
Use this skill when the user is managing Analytics data-source links — S3, Azure Blob, GCS, or remote Couchbase links — including…
Use this skill when the user is setting up cb-analytics-mcp from scratch or troubleshooting an existing install — generating…
Use this skill when the user wants to write or improve SQL++ queries against Couchbase Analytics through cb-analytics-mcp.…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.