Exposes the full Couchbase data-plane and admin REST API as MCP tools, with defense-in-depth safety primitives including read-only mode, tool disabling, confirmation gates, and OAuth 2.0 scope enforcement.
Server defines 6 tools with explicit schemas and descriptions. Naming follows verb_noun pattern (admin_index_*) and is consistent. Descriptions are present (avg ~120 chars) but lack actionable context for LLM selection. Schemas are well-formed with types and enums, but parameter descriptions are sparse or missing. Error handling guidance is absent, tools do not explain recovery paths. Security posture is strong (credentials via env vars, read-only mode default), but tool composition could be tighter (e.g., admin_index_build and admin_index_create are separate when they could be unified for common workflows).
Build deferred indexes on a bucket (or scope.collection for CB 7+).
Create a GSI index using N1QL CREATE INDEX. Provide the full CREATE INDEX statement (must start with CREATE INDEX / CREATE PRIMARY INDEX / CREATE [HYPERSCALE|COMPOSITE] VECTOR INDEX / BUILD INDEX — other SQL++ is rejected), or use the helper fields.
Drop a GSI index. Requires confirm:true. Raw `statement` only accepts DROP INDEX / DROP PRIMARY INDEX / DROP VECTOR INDEX.
List all GSI indexes (optionally filtered by bucket/scope/collection).
Get Index Service settings (memory, threads, log level, etc.).
Update Index Service settings. Common keys: indexerThreads, memorySnapshotInterval, stableSnapshotInterval, maxRollbackPoints, logLevel.
Parameter descriptions missing or minimal. 'bucket_name', 'scope_name', 'collection_name' lack guidance on when each is required, format constraints, or examples. LLMs cannot infer whether scope_name is optional or mandatory without explicit text.
No error recovery guidance. Tools do not document what happens on failure (e.g., 'Index already exists', 'Bucket not found', 'Permission denied') or how to recover. LLMs receive raw errors with no actionable next steps.
admin_index_create accepts both 'statement' (raw DDL) and helper fields (index_name, fields, etc.). Relationship between these is undocumented. LLMs may pass both, causing ambiguity or rejection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
admin_index_settings_set exposes raw setting keys (indexerThreads, memorySnapshotInterval, etc.) without range constraints or validation rules in descriptions. LLMs may pass invalid values (negative threads, zero intervals).
Output schemas not documented. Tools return results but descriptions do not specify what fields are in the response, what types they are, or what IDs/references are included for chaining. LLMs cannot plan downstream calls.