Skip to content

Understand MCP tool behavior

Inspect each tool’s schema and annotations before calling it. Tool discovery is the authoritative reference for available names and arguments.

AnnotationMeaning
readOnlyHintThe tool does not change state
destructiveHintThe tool may create, replace, or delete state
idempotentHintRepeating the same call does not add another effect
openWorldHintThe effect depends on a system outside Varroa’s resource model

Varroa create and update tools are declarative. Many create tools apply a full desired object, so an existing object may be replaced. Updates for most resources also replace omitted fields. update_controller is a sparse patch with separate ownership rules. Read Writing through MCP before using it.

call_jenkins_tool is open-world because the target Jenkins plugin defines the remote tool’s effect. Review its discovered schema for every controller.

Collection tools return an object:

{"items": [], "count": 0}

Single-resource tools return the resource directly. List tools usually return compact summaries. Pass verbose: true where supported, or call the matching get_* tool for full detail.

list_activity returns complete events and accepts limit. The default is 50 and the maximum is 200.

MCP and REST results omit credentials and noisy Kubernetes metadata. Removed fields include:

  • controller wake tokens
  • password hashes and write-only user passwords
  • metadata.managedFields
  • resourceVersion, uid, and generation

Do not build workflows that expect these fields from MCP.

ErrorResponse
Authentication failureFollow the connection procedure
Authorization failureCheck Varroa and Jenkins roles
Field conflictFollow field ownership
Oversized listUse filters or get_*
Jenkins tool failureRe-discover the controller tools