drupal-mcp-connector 2.7.2 → 2.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/.claude/commands/drupal-audit-config-best-practices.md +1 -1
  2. package/.claude/commands/drupal-audit-site-health.md +1 -1
  3. package/.claude/commands/drupal-block-user.md +1 -1
  4. package/.claude/commands/drupal-bulk-create.md +1 -1
  5. package/.claude/commands/drupal-bulk-update.md +1 -1
  6. package/.claude/commands/drupal-config-get.md +1 -1
  7. package/.claude/commands/drupal-config-list.md +1 -1
  8. package/.claude/commands/drupal-config-set.md +1 -1
  9. package/.claude/commands/drupal-content-by-moderation-state.md +3 -3
  10. package/.claude/commands/drupal-create-block.md +1 -1
  11. package/.claude/commands/drupal-create-media.md +1 -1
  12. package/.claude/commands/drupal-create-menu-link.md +1 -1
  13. package/.claude/commands/drupal-create-node.md +1 -1
  14. package/.claude/commands/drupal-create-paragraph.md +1 -1
  15. package/.claude/commands/drupal-create-redirect.md +1 -1
  16. package/.claude/commands/drupal-create-taxonomy-term.md +1 -1
  17. package/.claude/commands/drupal-create-translation.md +1 -1
  18. package/.claude/commands/drupal-create-user.md +1 -1
  19. package/.claude/commands/drupal-delete-media.md +1 -1
  20. package/.claude/commands/drupal-delete-node.md +1 -1
  21. package/.claude/commands/drupal-delete-taxonomy-term.md +1 -1
  22. package/.claude/commands/drupal-describe-fields.md +1 -1
  23. package/.claude/commands/drupal-drush-cache-rebuild.md +1 -1
  24. package/.claude/commands/drupal-drush-config-export.md +1 -1
  25. package/.claude/commands/drupal-drush-config-import.md +1 -1
  26. package/.claude/commands/drupal-drush-config-status.md +1 -1
  27. package/.claude/commands/drupal-drush-cron.md +1 -1
  28. package/.claude/commands/drupal-drush-module-disable.md +1 -1
  29. package/.claude/commands/drupal-drush-module-enable.md +1 -1
  30. package/.claude/commands/drupal-drush-module-list.md +1 -1
  31. package/.claude/commands/drupal-drush-security-updates.md +1 -1
  32. package/.claude/commands/drupal-drush-sql-query.md +1 -1
  33. package/.claude/commands/drupal-drush-status.md +1 -1
  34. package/.claude/commands/drupal-drush-updatedb.md +1 -1
  35. package/.claude/commands/drupal-drush-user-create.md +1 -1
  36. package/.claude/commands/drupal-drush-user-list.md +1 -1
  37. package/.claude/commands/drupal-drush-watchdog.md +1 -1
  38. package/.claude/commands/drupal-entity-create.md +1 -1
  39. package/.claude/commands/drupal-entity-delete.md +1 -1
  40. package/.claude/commands/drupal-entity-get.md +1 -1
  41. package/.claude/commands/drupal-entity-list.md +1 -1
  42. package/.claude/commands/drupal-entity-update.md +1 -1
  43. package/.claude/commands/drupal-find-orphaned-media.md +1 -1
  44. package/.claude/commands/drupal-get-entity-schema.md +1 -1
  45. package/.claude/commands/drupal-get-media.md +1 -1
  46. package/.claude/commands/drupal-get-node.md +1 -1
  47. package/.claude/commands/drupal-get-paragraph.md +1 -1
  48. package/.claude/commands/drupal-get-revision.md +1 -1
  49. package/.claude/commands/drupal-get-taxonomy-term.md +1 -1
  50. package/.claude/commands/drupal-get-taxonomy-terms.md +1 -1
  51. package/.claude/commands/drupal-get-user-by-name.md +1 -1
  52. package/.claude/commands/drupal-get-user.md +1 -1
  53. package/.claude/commands/drupal-governance-status.md +1 -1
  54. package/.claude/commands/drupal-graphql-introspect.md +1 -1
  55. package/.claude/commands/drupal-graphql.md +1 -1
  56. package/.claude/commands/drupal-list-blocks.md +1 -1
  57. package/.claude/commands/drupal-list-content-types.md +1 -1
  58. package/.claude/commands/drupal-list-entity-types.md +1 -1
  59. package/.claude/commands/drupal-list-media-types.md +1 -1
  60. package/.claude/commands/drupal-list-media.md +1 -1
  61. package/.claude/commands/drupal-list-menu-links.md +1 -1
  62. package/.claude/commands/drupal-list-moderation-states.md +1 -1
  63. package/.claude/commands/drupal-list-nodes.md +1 -1
  64. package/.claude/commands/drupal-list-revisions.md +1 -1
  65. package/.claude/commands/drupal-list-roles.md +1 -1
  66. package/.claude/commands/drupal-list-translations.md +1 -1
  67. package/.claude/commands/drupal-list-users.md +1 -1
  68. package/.claude/commands/drupal-list-vocabularies.md +1 -1
  69. package/.claude/commands/drupal-mcp-whoami.md +1 -1
  70. package/.claude/commands/drupal-report-404-log.md +1 -1
  71. package/.claude/commands/drupal-report-accessibility-audit.md +1 -1
  72. package/.claude/commands/drupal-report-alias-coverage.md +1 -1
  73. package/.claude/commands/drupal-report-broken-embeds.md +1 -1
  74. package/.claude/commands/drupal-report-broken-links.md +1 -1
  75. package/.claude/commands/drupal-report-cache-config.md +1 -1
  76. package/.claude/commands/drupal-report-config-drift.md +1 -1
  77. package/.claude/commands/drupal-report-content-by-author.md +1 -1
  78. package/.claude/commands/drupal-report-content-summary.md +1 -1
  79. package/.claude/commands/drupal-report-duplicate-content.md +1 -1
  80. package/.claude/commands/drupal-report-field-completeness.md +1 -1
  81. package/.claude/commands/drupal-report-menu-integrity.md +1 -1
  82. package/.claude/commands/drupal-report-missing-field.md +1 -1
  83. package/.claude/commands/drupal-report-module-audit.md +1 -1
  84. package/.claude/commands/drupal-report-orphan-pages.md +1 -1
  85. package/.claude/commands/drupal-report-orphaned-references.md +1 -1
  86. package/.claude/commands/drupal-report-permission-audit.md +1 -1
  87. package/.claude/commands/drupal-report-pii-exposure.md +1 -1
  88. package/.claude/commands/drupal-report-readability.md +1 -1
  89. package/.claude/commands/drupal-report-recently-published.md +1 -1
  90. package/.claude/commands/drupal-report-redirect-health.md +1 -1
  91. package/.claude/commands/drupal-report-revision-hotspots.md +1 -1
  92. package/.claude/commands/drupal-report-scheduled-content.md +1 -1
  93. package/.claude/commands/drupal-report-seo-audit.md +1 -1
  94. package/.claude/commands/drupal-report-seo-meta-coverage.md +1 -1
  95. package/.claude/commands/drupal-report-stale-content.md +1 -1
  96. package/.claude/commands/drupal-report-status-report.md +1 -1
  97. package/.claude/commands/drupal-report-taxonomy-usage.md +1 -1
  98. package/.claude/commands/drupal-report-text-format-audit.md +1 -1
  99. package/.claude/commands/drupal-report-translation-coverage.md +1 -1
  100. package/.claude/commands/drupal-report-unpublished.md +1 -1
  101. package/.claude/commands/drupal-report-user-activity.md +1 -1
  102. package/.claude/commands/drupal-report-workflow-bottlenecks.md +1 -1
  103. package/.claude/commands/drupal-resolve-reference.md +1 -1
  104. package/.claude/commands/drupal-revert-revision.md +1 -1
  105. package/.claude/commands/drupal-schedule-publish.md +1 -1
  106. package/.claude/commands/drupal-search-content.md +1 -1
  107. package/.claude/commands/drupal-search.md +1 -1
  108. package/.claude/commands/drupal-security-info.md +1 -1
  109. package/.claude/commands/drupal-set-moderation-state.md +1 -1
  110. package/.claude/commands/drupal-site-info.md +1 -1
  111. package/.claude/commands/drupal-update-media.md +1 -1
  112. package/.claude/commands/drupal-update-menu-link.md +1 -1
  113. package/.claude/commands/drupal-update-node.md +1 -1
  114. package/.claude/commands/drupal-update-paragraph.md +1 -1
  115. package/.claude/commands/drupal-update-redirect.md +1 -1
  116. package/.claude/commands/drupal-update-taxonomy-term.md +1 -1
  117. package/.claude/commands/drupal-update-user.md +1 -1
  118. package/.claude/commands/drupal-upload-file-and-create-media.md +1 -1
  119. package/.claude/commands/drupal-upload-file.md +1 -1
  120. package/CHANGELOG.md +38 -0
  121. package/README.md +2 -1
  122. package/package.json +1 -1
  123. package/src/index.js +5 -2
  124. package/src/lib/dispatch.js +63 -15
  125. package/src/lib/load-secrets.js +40 -5
  126. package/src/lib/operations.js +39 -2
  127. package/src/lib/security.js +1 -1
  128. package/src/lib/site-target.js +78 -0
  129. package/src/lib/tool-prompts.js +2 -1
  130. package/src/tools/config.js +5 -2
  131. package/src/tools/index.js +21 -1
  132. package/src/tools/moderation.js +88 -9
@@ -11,7 +11,7 @@ List custom content blocks (block_content entities), optionally scoped to a sing
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Block type (bundle) machine name to filter by, e.g. 'basic'. Omit to list all custom blocks.
16
16
  - `limit` (number)
17
17
  - `offset` (number)
@@ -11,6 +11,6 @@ List all content types defined on this Drupal site with their machine names and
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,6 +11,6 @@ Discover all JSON:API resource types (entity types + bundles) exposed by this Dr
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,6 +11,6 @@ List all media types defined on this Drupal site (image, document, remote_video,
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ List media entities by type. Supports filtering by name substring and publish st
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Media type machine name, e.g. 'image', 'document', 'remote_video'
16
16
  - `status` (boolean (true/false))
17
17
  - `name` (string): Filter by name substring
@@ -11,7 +11,7 @@ List custom (content) menu links, optionally scoped to a single menu (e.g. 'main
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): Named site (omit for default)
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `menu` (string): Menu machine name to filter by, e.g. 'main', 'footer', 'admin'. Omit to list links across all menus.
16
16
  - `limit` (number)
17
17
  - `offset` (number)
@@ -14,7 +14,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
14
14
  - `type` (string): Content type machine name
15
15
 
16
16
  **Optional:**
17
- - `site` (string): omit for the default site
17
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
18
18
  - `sample` (number): How many recent items to sample
19
19
 
20
20
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -14,7 +14,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
14
14
  - `type` (string): Content type machine name
15
15
 
16
16
  **Optional:**
17
- - `site` (string): omit for the default site
17
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
18
18
  - `status` (boolean (true/false)): true = published only, false = unpublished only, omit = all
19
19
  - `limit` (number)
20
20
  - `offset` (number)
@@ -15,6 +15,6 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
15
15
  - `id` (string): Node UUID
16
16
 
17
17
  **Optional:**
18
- - `site` (string): Named site (omit for default)
18
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
19
19
 
20
20
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,6 +11,6 @@ List all user roles defined on this Drupal site.
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -15,7 +15,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
15
15
  - `id` (string): Entity UUID
16
16
 
17
17
  **Optional:**
18
- - `site` (string): Named site (omit for default)
18
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
19
19
  - `entityType` (string): Entity type machine name. Default: 'node'.
20
20
 
21
21
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ List Drupal user accounts. Filter by active/blocked status or by role machine na
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `status` (boolean (true/false)): true = active only, false = blocked only
16
16
  - `role` (string): Filter by role machine name, e.g. 'editor'
17
17
  - `limit` (number)
@@ -11,6 +11,6 @@ List all taxonomy vocabularies defined on this Drupal site.
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,6 +11,6 @@ Report the agent's effective governance tier, security preset, OAuth scopes, and
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Aggregate Drupal 'page not found' (404) log events into the top missing URLs ran
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `limit` (number): Max distinct missing paths to return (max 200)
16
16
 
17
17
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Accessibility audit for body content: images without alt text, inline H1 tags, n
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number)
17
17
 
@@ -11,7 +11,7 @@ URL-alias coverage for a content type: nodes whose canonical URL is still /node/
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number): Max nodes to scan
17
17
 
@@ -11,7 +11,7 @@ Scan published body content for embedded entities (media/entity embeds) and repo
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number): Max nodes to scan
17
17
 
@@ -11,7 +11,7 @@ Inventory links in published body content (internal/external/images), aggregate
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number): Max nodes to scan
17
17
  - `checkLive` (boolean (true/false)): Perform live HTTP checks (off by default)
@@ -11,6 +11,6 @@ Report the site's cache posture (CSS/JS aggregation, anonymous page-cache max-ag
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,6 +11,6 @@ Report whether active configuration matches the sync directory, as an added/chan
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Count nodes per author for a given content type. Returns author UUIDs and counts
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `limit` (number): Max nodes to scan
17
17
 
@@ -11,6 +11,6 @@ High-level content inventory: total node counts by type and status (published/un
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Find duplicate / near-duplicate titles within a content type (normalized title g
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number): Max nodes to scan
17
17
 
@@ -14,7 +14,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
14
14
  - `type` (string): Content type machine name
15
15
 
16
16
  **Optional:**
17
- - `site` (string): omit for the default site
17
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
18
18
  - `fields` (array (pass as JSON)): Field machine names to check. Defaults to common SEO/editorial fields.
19
19
  - `sampleSize` (number): Max nodes to scan
20
20
 
@@ -11,7 +11,7 @@ Audit custom menu links (menu_link_content): disabled links, links with no usabl
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `limit` (number): Max menu links to scan
16
16
 
17
17
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -14,7 +14,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
14
14
  - `field` (string): Field machine name to check for emptiness, e.g. 'field_meta_description', 'field_image'
15
15
 
16
16
  **Optional:**
17
- - `site` (string): omit for the default site
17
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
18
18
  - `type` (string): Content type machine name (default: article)
19
19
  - `sampleSize` (number): Max entities to scan
20
20
 
@@ -11,6 +11,6 @@ Audit enabled modules: development/debug modules that should be off in productio
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Find published pages with no inbound internal links from other sampled pages —
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number)
17
17
 
@@ -11,7 +11,7 @@ Find entities whose entity-reference fields point at targets that no longer exis
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type machine name to scan (default: article)
16
16
  - `sampleSize` (number): Max entities to scan for broken references
17
17
 
@@ -11,6 +11,6 @@ Audit role permissions: dangerous grants to the anonymous/authenticated roles an
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Scan published body content for accidentally exposed PII (emails, US SSNs, phone
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number)
17
17
  - `kinds` (array (pass as JSON)): PII kinds to scan (default: all)
@@ -11,7 +11,7 @@ Score body readability (Flesch Reading Ease) for a content type and flag hard-to
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number)
17
17
  - `hardThreshold` (number): Flag content scoring below this
@@ -11,7 +11,7 @@ List the most recently published content of a given type.
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `limit` (number)
17
17
 
@@ -11,7 +11,7 @@ Audit the Redirect module table for structural problems: duplicate sources, self
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `limit` (number): Max redirects to scan
16
16
 
17
17
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Find nodes with the most revision activity — useful for spotting churn or cont
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `limit` (number)
17
17
 
@@ -11,7 +11,7 @@ Report content with Scheduler publish/unpublish dates set, split into pending (f
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number)
17
17
 
@@ -11,7 +11,7 @@ SEO audit for a content type: missing meta descriptions, title length issues, an
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `sampleSize` (number)
17
17
 
@@ -11,7 +11,7 @@ Report structured-meta (SEO) coverage for a content type: how many sampled nodes
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `fields` (array (pass as JSON)): Meta field machine names to check
17
17
  - `sampleSize` (number)
@@ -11,7 +11,7 @@ Find content that hasn't been updated in N days. Returns a sorted list with titl
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `days` (number): Stale threshold in days
17
17
  - `status` (boolean (true/false)): Filter by publish status
@@ -11,7 +11,7 @@ Surface the Drupal status report (system requirements) entries at warning/error
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `minSeverity` (string): Lowest severity to include
16
16
 
17
17
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -14,7 +14,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
14
14
  - `vocabulary` (string): Vocabulary machine name, e.g. 'tags', 'category'
15
15
 
16
16
  **Optional:**
17
- - `site` (string): omit for the default site
17
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
18
18
  - `contentType` (string): Content type to count references from (default: article)
19
19
  - `referenceField` (string): Field referencing the vocabulary (default: field_{vocabulary})
20
20
  - `limit` (number)
@@ -11,6 +11,6 @@ Audit text formats for ones that permit unfiltered HTML (filter_html not enabled
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,7 +11,7 @@ Report content distribution by language for a content type and flag languages la
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `gapThreshold` (number): Flag languages below this fraction of the top language
17
17
  - `sampleSize` (number)
@@ -11,7 +11,7 @@ List unpublished/draft content of a given type. Returns a finding list with titl
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type machine name (default: article)
16
16
  - `limit` (number): Max unpublished nodes to return
17
17
 
@@ -11,7 +11,7 @@ User activity summary: active vs blocked accounts, never-logged-in users, and us
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `inactiveDays` (number): Days without login to flag as inactive
16
16
  - `limit` (number)
17
17
 
@@ -11,7 +11,7 @@ Find content stuck in a non-published moderation state (draft/needs_review) beyo
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
  - `type` (string): Content type (default: article)
16
16
  - `days` (number): Days-in-state threshold
17
17
  - `states` (array (pass as JSON)): Moderation states to treat as bottlenecks
@@ -16,7 +16,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
16
16
  - `name` (string): Human name/title to resolve (matched as a substring)
17
17
 
18
18
  **Optional:**
19
- - `site` (string): Named site (omit for default)
19
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
20
20
  - `limit` (number): Maximum candidates to consider
21
21
 
22
22
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -16,6 +16,6 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
16
16
  - `version` (string): Revision to restore: numeric vid, 'id:<vid>', 'rel:latest-version', or 'rel:working-copy'.
17
17
 
18
18
  **Optional:**
19
- - `site` (string): omit for the default site
19
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
20
20
 
21
21
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -15,7 +15,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
15
15
  - `id` (string): Node UUID
16
16
 
17
17
  **Optional:**
18
- - `site` (string): Named site (omit for default)
18
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
19
19
  - `publishOn` (string): When to publish — ISO 8601 datetime or Unix epoch. Sets the Scheduler publish_on field.
20
20
  - `unpublishOn` (string): When to unpublish — ISO 8601 datetime or Unix epoch. Sets the Scheduler unpublish_on field.
21
21
 
@@ -14,7 +14,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
14
14
  - `query` (string): Search term to match against node titles
15
15
 
16
16
  **Optional:**
17
- - `site` (string): omit for the default site
17
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
18
18
  - `type` (string): Limit to this content type (default: article)
19
19
  - `status` (boolean (true/false)): Filter by publish status
20
20
  - `limit` (number)
@@ -14,7 +14,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
14
14
  - `query` (string): Search term
15
15
 
16
16
  **Optional:**
17
- - `site` (string): omit for the default site
17
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
18
18
  - `type` (string): Content type machine name (default: article)
19
19
  - `limit` (number)
20
20
 
@@ -11,6 +11,6 @@ Show the active security configuration for a site — what's allowed, what's blo
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -16,6 +16,6 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
16
16
  - `state` (string): Target moderation state machine name
17
17
 
18
18
  **Optional:**
19
- - `site` (string): omit for the default site
19
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
20
20
 
21
21
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -11,6 +11,6 @@ Get the base URL and the list of available resource/query types for a configured
11
11
  Parse the request in `$ARGUMENTS` into this tool's parameters:
12
12
 
13
13
  **Optional:**
14
- - `site` (string): omit for the default site
14
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
15
15
 
16
16
  If a required parameter is missing from `$ARGUMENTS`, ask before calling — do not invent values. Coerce each value to its JSON type (booleans → true/false, numbers → numeric, object/array → parse JSON), then make the single tool call and summarize the result.
@@ -15,7 +15,7 @@ Parse the request in `$ARGUMENTS` into this tool's parameters:
15
15
  - `id` (string)
16
16
 
17
17
  **Optional:**
18
- - `site` (string): omit for the default site
18
+ - `site` (string): Named site from connector config. Omit only on reads: multi-site configs fall back to defaultSite (often local/dev, not production). Writes require an explicit site when more than one site is configured. Every response includes `_target` { name, baseUrl, source } (`hint` when you passed site, `default` when you did not).
19
19
  - `name` (string)
20
20
  - `status` (boolean (true/false)): Published flag. Only sent when provided; requires allowPublish when true.
21
21
  - `fields` (object (pass as JSON)): Field values. Entity-reference values in JSON:API linkage shape ({ data: { type, id } }) are sent as relationships automatically.