Skip to main content
Glama
mgcrea

@mgcrea/mcp-cloudkit

by mgcrea

CloudKit: Diff Schema

cloudkit_diff_schema
Read-only

Show pending differences between development and production CloudKit schemas before deploying, highlighting irreversible changes like field retypes.

Instructions

Show what deploying would change: the pending differences between the container's DEVELOPMENT and PRODUCTION schemas, one row per change: ADD, CHANGE_INDEXES, RETYPE, MISSING_IN_DEVELOPMENT (Production keeps it; a deploy cannot remove it) or OTHER (the schemas differ outside any field, e.g. permissions). Read this before cloudkit_deploy_schema. Production is additive-only and irreversible — a field can be added forever, but never removed, renamed or retyped — so a RETYPE is a reason to stop.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
containerIdNoThe iCloud container id, e.g. "iCloud.com.acme.App". Get it from cloudkit_list_containers, or set CLOUDKIT_CONTAINER_ID to default it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, but the description adds substantial non-obvious domain behavior: production is additive-only and irreversible, fields can be added but never removed/renamed/retyped, and MISSING_IN_DEVELOPMENT cannot be cleaned up by a deploy. This is exactly the context an agent needs beyond the structured hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose followed by the return-value enumeration and then the deploy caveat. Dense and mostly waste-free, though the parenthetical explanations make it slightly run-on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by enumerating every row type and defining the ambiguous ones (MISSING_IN_DEVELOPMENT, OTHER). Nothing an agent needs to interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, and its schema description already covers format, retrieval from cloudkit_list_containers, and the CLOUDKIT_CONTAINER_ID default (100% coverage). The description adds no parameter-level detail, so the baseline of 3 for a fully documented single param is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Show what deploying would change: the pending differences between the container's DEVELOPMENT and PRODUCTION schemas') and enumerates the exact change categories returned. An agent can distinguish it from cloudkit_validate_schema or cloudkit_export_schema without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit sequencing guidance: 'Read this before cloudkit_deploy_schema', plus a concrete stop condition ('a RETYPE is a reason to stop'). This routes the agent to the right point in the deploy workflow rather than leaving usage to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.