changedInput schema / properties / accent_color / description
Previous value: -"Brand accent color as JSON. Send \"null\" to clear. (used by: update)"New value: +"Brand accent color JSON. \"null\" to clear."
changedInput schema / properties / action / description
Previous value: -"Operation to perform"New value: +"Operation. Use 'describe' for full action reference."
changedInput schema / properties / action / enum
Previous value: -[
- "list",
- "details",
- "update",
- "delete",
- "archive",
- "unarchive",
- "members",
- "list-shares",
- "import-share",
- "available",
- "check-name",
- "create-note",
- "update-note",
- "read-note",
- "quickshare-get",
- "quickshare-delete",
- "quickshares-list",
- "metadata-template-create",
- "metadata-template-delete",
- "metadata-template-list",
- "metadata-template-details",
- "metadata-template-update",
- "metadata-template-clone",
- "metadata-template-preview-match",
- "metadata-template-suggest-fields",
- "metadata-template-assign",
- "metadata-template-unassign",
- "metadata-template-resolve",
- "metadata-template-assignments",
- "metadata-get",
- "metadata-set",
- "metadata-delete",
- "metadata-extract",
- "jobs-status",
- "metadata-list-files",
- "metadata-list-templates-in-use",
- "metadata-versions",
- "metadata-view-get",
- "metadata-view-save",
- "metadata-view-delete",
- "metadata-views-list",
- "metadata-view-export",
- "metadata-search",
- "enable-workflow",
- "disable-workflow",
- "enable-import",
- "disable-import",
- "instructions-get",
- "instructions-set",
- "instructions-clear"
-]New value: +[
+ "describe",
+ "list",
+ "details",
+ "update",
+ "delete",
+ "archive",
+ "unarchive",
+ "members",
+ "list-shares",
+ "import-share",
+ "available",
+ "check-name",
+ "create-note",
+ "update-note",
+ "read-note",
+ "quickshare-get",
+ "quickshare-delete",
+ "quickshares-list",
+ "metadata-template-create",
+ "metadata-template-delete",
+ "metadata-template-list",
+ "metadata-template-details",
+ "metadata-template-update",
+ "metadata-template-clone",
+ "metadata-template-preview-match",
+ "metadata-template-suggest-fields",
+ "metadata-template-assign",
+ "metadata-template-unassign",
+ "metadata-template-resolve",
+ "metadata-template-assignments",
+ "metadata-get",
+ "metadata-set",
+ "metadata-delete",
+ "metadata-extract",
+ "jobs-status",
+ "metadata-list-files",
+ "metadata-list-templates-in-use",
+ "metadata-versions",
+ "metadata-view-get",
+ "metadata-view-save",
+ "metadata-view-delete",
+ "metadata-views-list",
+ "metadata-view-export",
+ "metadata-search",
+ "enable-workflow",
+ "disable-workflow",
+ "enable-import",
+ "disable-import",
+ "instructions-get",
+ "instructions-set",
+ "instructions-clear"
+]
changedInput schema / properties / archived / description
Previous value: -"Filter by archive status: \"true\" for archived, \"false\" for active (default) (used by: list-shares)"New value: +"Filter by archive status (default \"false\")."
changedInput schema / properties / background_color1 / description
Previous value: -"Background color 1 as JSON. Send \"null\" to clear. (used by: update)"New value: +"Background color 1 JSON. \"null\" to clear."
changedInput schema / properties / background_color2 / description
Previous value: -"Background color 2 as JSON. Send \"null\" to clear. (used by: update)"New value: +"Background color 2 JSON. \"null\" to clear."
changedInput schema / properties / blob_id / description
Previous value: -"Blob ID from POST /blob response. The recommended method for large note content — avoids base64 overhead and MCP transport limits. Consumed (deleted) after use. Bytes are decoded as UTF-8 and passed as note content. (used by: create-note, update-note as one of content/blob_id)"New value: +"Blob ID from POST /blob. Preferred for large note content (UTF-8 decoded). Single-use."
changedInput schema / properties / blob_ref / description
Previous value: -"Alias for blob_id (deprecated — use blob_id instead) (used by: create-note, update-note)"New value: +"Alias for blob_id (deprecated)."
changedInput schema / properties / category / description
Previous value: -"Metadata template category (used by: metadata-template-create, metadata-template-update, metadata-template-clone)"New value: +"Metadata template category."
changedInput schema / properties / check_org_id / description
Previous value: -"Org ID for check-name — if provided and name is taken, suggests an org-prefixed alternative (optional for: check-name)"New value: +"Org ID for check-name — suggests org-prefixed alternative if name taken."
changedInput schema / properties / config / description
Previous value: -"Saved-view config as a JSON-encoded string. Schema: `{version:1, columns:[{field,visible?,width?}], sort:{field,dir}, filters:[{field,operator,value_type,value}]}`. columns array order IS the display order; sort.dir is 'asc' or 'desc'; filters are AND-chained (max 5) with operator in `= != < <= > >=` and value_type in `string|int|float|bool` (json rejected). Unknown keys rejected with 1605. Auto-apply: GET /workspace/{id}/metadata/templates/{tid}/nodes/ applies config.sort and config.filters when the caller omits sort_field/filters — that endpoint is not exposed as an MCP workspace action, so reach it via code-mode execute. Columns are never auto-applied server-side. (required for: metadata-view-save)"New value: +"Saved-view config JSON: `{version:1, columns:[{field,visible?,width?}], sort:{field,dir}, filters:[{field,operator,value_type,value}]}`. Max 5 filters AND-chained; operator in `= != < <= > >=`; value_type in `string|int|float|bool`."
changedInput schema / properties / confirm / description
Previous value: -"Safety confirmation: must match the workspace folder_name or numeric ID (required for: delete)"New value: +"Must match folder_name or numeric ID."
changedInput schema / properties / content / description
Previous value: -"Plain text/markdown content. For create-note/update-note: markdown body (max 102400 bytes / 100 KiB). For larger notes, use POST /blob + blob_id instead to avoid base64 overhead and MCP transport limits. For instructions-set: full markdown body that replaces the AI instructions slot (max 65536 bytes / 64 KiB UTF-8). (used by: create-note, update-note as one of content/blob_id; instructions-set)"New value: +"Plain text/markdown. Notes: max 102400 bytes (100 KiB) — use blob_id for larger. Instructions: max 65536 bytes UTF-8."
changedInput schema / properties / description / description
Previous value: -"Description. Server-enforced ranges: 10-1000 chars for update/metadata-template-create/metadata-template-update/metadata-template-clone; 1-2000 chars for metadata-template-preview-match and metadata-template-suggest-fields. Newlines allowed. For update, send \"null\" or \"\" to clear. (used by: update, metadata-template-create, metadata-template-update, metadata-template-clone, metadata-template-preview-match, metadata-template-suggest-fields)"New value: +"Description. 10-1000 chars (update/metadata-template-*); 1-2000 (preview-match/suggest-fields). Newlines allowed. Send \"null\"/\"\" to clear on update."
addedInput schema / properties / detail
Added value: +{
+ "description": "Per-entity verbosity for list/available/members/list-shares/details. Defaults: terse for list/available/members/list-shares, full for details. See action='describe' for per-level field lists.",
+ "enum": [
+ "terse",
+ "standard",
+ "full"
+ ],
+ "type": "string"
+}
addedInput schema / properties / display_limit
Added value: +{
+ "anyOf": [
+ {
+ "maximum": 500,
+ "minimum": 1,
+ "type": "integer"
+ },
+ {
+ "pattern": "^-?\\d+$",
+ "type": "string"
+ }
+ ],
+ "description": "How many items to return. Default 10, max 500. The MCP trims post-fetch; backend page_size stays MCP-internal so the platform cache stays warm. Applies to list, list-shares, members, metadata-search."
+}
changedInput schema / properties / extract_fields / description
Previous value: -"Optional JSON-encoded array of field NAMES (e.g. `[\"vendor\",\"amount\"]`) to extract a subset of template fields rather than the full row. Omit (or pass `null`) for full-row extraction. Partial extractions with different field subsets coexist as independent jobs. (used by: metadata-extract)"New value: +"JSON array of field names to extract (e.g. `[\"vendor\",\"amount\"]`); omit/null for full row."
changedInput schema / properties / fields / description
Previous value: -"JSON-encoded array of field definitions. IMPORTANT: at least one field per template must have `autoextract:true` (omitted → defaults to true) or the API returns 1605 / HTTP 400. Each field: {name, description, type (string|int|float|bool|json|url|datetime), min?, max?, default?, fixed_list?, can_be_null?, autoextract?}. Set `autoextract:false` on fields managed manually (user-entered notes, reviewer flags, etc.) — those are skipped by full-row AI extraction but still writable via metadata-set. (used by: metadata-template-create, metadata-template-update, metadata-template-clone)"New value: +"JSON array of field defs. At least one field must have autoextract:true (default) or API returns 1605. Each: {name, description, type (string|int|float|bool|json|url|datetime), min?, max?, default?, fixed_list?, can_be_null?, autoextract?}."
changedInput schema / properties / folder_name / description
Previous value: -"URL-safe workspace folder name (4-80 chars) (used by: update)"New value: +"URL-safe workspace folder name (4-80 chars)."
changedInput schema / properties / intelligence / description
Previous value: -"Enable/disable AI features (\"true\"/\"false\"). ⚠️ Enabling COSTS CREDITS: 10 credits per page for every document — can consume the entire free plan budget quickly. Only enable when user explicitly requests RAG or AI search. Disabling flushes indexed embeddings; re-enabling re-indexes at AI credit cost. Toggle is temporarily rate-limited after each flip. (used by: update)"New value: +"Toggle AI features. ⚠️ COSTS CREDITS (10/page) — only enable on explicit user request. Disable flushes embeddings; re-enable re-indexes. Rate-limited."
changedInput schema / properties / key_values / description
Previous value: -"JSON object of key-value pairs matching template fields (required for: metadata-set)"New value: +"JSON object of key-value pairs matching template fields."
changedInput schema / properties / keys / description
Previous value: -"JSON array of metadata key names to delete (omit to delete all) (used by: metadata-delete)"New value: +"JSON array of metadata keys to delete (omit for all)."
addedInput schema / properties / limit / anyOf
Added value: +[
+ {
+ "maximum": 500,
+ "minimum": 1,
+ "type": "integer"
+ },
+ {
+ "pattern": "^-?\\d+$",
+ "type": "string"
+ }
+]
removedInput schema / properties / limit / maximum
Removed value: -500
removedInput schema / properties / limit / minimum
Removed value: -1
removedInput schema / properties / limit / type
Removed value: -"integer"
changedInput schema / properties / metadata_filters / description
Previous value: -"JSON-encoded filter criteria for listing files with metadata (used by: metadata-list-files)"New value: +"JSON filter criteria for metadata file listing."
changedInput schema / properties / name / description
Previous value: -"Name. Server-enforced ranges: 2-100 chars for update/metadata-template-create/metadata-template-update/metadata-template-clone; 1-255 chars for metadata-template-preview-match. Send \"null\" to clear (update only). (used by: update, metadata-template-create, metadata-template-update, metadata-template-clone, metadata-template-preview-match)"New value: +"Name. 2-100 chars (update/metadata-template-*); 1-255 (preview-match). Send \"null\" to clear on update."
changedInput schema / properties / name_to_check / description
Previous value: -"Workspace folder name to check availability (required for: check-name)"New value: +"Folder name to check availability."
changedInput schema / properties / node_id / description
Previous value: -"Storage node opaque ID (used by: update-note, read-note, quickshare-get, quickshare-delete, metadata-template-assign, metadata-template-resolve, metadata-get (single), metadata-set, metadata-delete, metadata-extract, metadata-list-files, metadata-list-templates-in-use, metadata-versions)"New value: +"Storage tree node opaque ID. Both files and folders are nodes — use this name regardless of which."
changedInput schema / properties / node_ids / description
Previous value: -"JSON-encoded array of storage node IDs (1-25 items, all in the same workspace; duplicates are silently deduped server-side before counting against the cap). For metadata-template-suggest-fields, typically sourced from metadata-template-preview-match results — folder nodes are filtered out server-side. For metadata-get (bulk variant), the response collapses to {format:'multi', objects, templates, errors} with templates deduplicated across objects. (used by: metadata-template-suggest-fields, metadata-get)"New value: +"JSON array of node IDs (1-25, same workspace; deduped server-side). Bulk metadata-get returns {format:'multi', objects, templates, errors}."
changedInput schema / properties / note_name / description
Previous value: -"Filename for note (must end with .md extension, e.g. 'my-note.md') (used by: create-note, update-note)"New value: +"Note filename (must end with .md)."
addedInput schema / properties / offset / anyOf
Added value: +[
+ {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "pattern": "^-?\\d+$",
+ "type": "string"
+ }
+]
removedInput schema / properties / offset / maximum
Removed value: -9007199254740991
removedInput schema / properties / offset / minimum
Removed value: -0
removedInput schema / properties / offset / type
Removed value: -"integer"
changedInput schema / properties / order_by / description
Previous value: -"Field key to sort by when listing files with metadata (used by: metadata-list-files)"New value: +"Field key to sort metadata file list by."
changedInput schema / properties / order_desc / description
Previous value: -"Sort descending for metadata list: 'true' or 'false' (used by: metadata-list-files)"New value: +"Sort descending: 'true' or 'false'."
changedInput schema / properties / org_id / description
Previous value: -"Optional org ID to filter workspaces by organization (used by: list)"New value: +"Filter workspaces to this org."
changedInput schema / properties / owner_defined / description
Previous value: -"Custom user-defined properties as JSON. Send \"null\" or empty to clear. (used by: update)"New value: +"Custom properties JSON. \"null\"/\"\" to clear."
changedInput schema / properties / parent_id / description
Previous value: -"Parent folder opaque ID, or 'root' for root (required for: create-note)"New value: +"Parent folder opaque ID or 'root'."
changedInput schema / properties / parent_node_id / description
Previous value: -"Destination folder opaque ID for the TSV export. Must be an existing folder (not a file, not trashed). Omit to write to workspace root. (used by: metadata-view-export)"New value: +"Destination folder opaque ID for TSV export (must be folder, not trashed). Omit for workspace root."
changedInput schema / properties / perm_join / description
Previous value: -"Who can join the workspace (used by: update)"New value: +"Who can join the workspace."
changedInput schema / properties / perm_member_manage / description
Previous value: -"Who can manage members (used by: update)"New value: +"Who can manage members."
changedInput schema / properties / q / description
Previous value: -"Search keyword(s). 1-1024 chars; whitespace-only rejected. Multi-token queries require ALL tokens (analyzer-tokenized AND); case-insensitive; substring matching applies for queries ≤64 chars, otherwise whole-word/token matching only. (required for: metadata-search)"New value: +"Search keyword(s). 1-1024 chars. Multi-token = ALL tokens (AND); case-insensitive; substring for ≤64 chars, else whole-word."
changedInput schema / properties / scope / description
Previous value: -"AI instructions scope. \"profile\" (default) targets the workspace-wide slot at /workspace/{ws_id}/instructions/ — owner/admin only (403 code 1680 for non-admins). \"me\" targets the per-user slot at /workspace/{ws_id}/instructions/me/ — any member (no guests). The two scopes are independent slots and do NOT merge server-side; concat client-side if you want a combined view. (used by: instructions-get, instructions-set, instructions-clear)"New value: +"AI instructions scope: 'profile' (workspace-wide; owner/admin) or 'me' (per-user; any member). Independent slots, do NOT merge."
changedInput schema / properties / share_id / description
Previous value: -"19-digit numeric ID or custom name of share to import (required for: import-share)"New value: +"19-digit numeric ID or custom name of share to import."
changedInput schema / properties / template_filter / description
Previous value: -"Filter for metadata template list (used by: metadata-template-list)"New value: +"Filter for metadata template list."
changedInput schema / properties / template_id / description
Previous value: -"Metadata template ID (e.g. mt_abc123) (used by: metadata-template-delete, metadata-template-details, metadata-template-update, metadata-template-clone, metadata-template-assign, metadata-set, metadata-extract, metadata-list-files, metadata-view-get, metadata-view-save, metadata-view-delete, metadata-view-export; optional for metadata-search to restrict to nodes with at least one value contributed by the template — custom fields are excluded when set)"New value: +"Metadata template ID (e.g. mt_abc123). For metadata-search, restricts to nodes with values from this template (custom fields excluded)."
changedInput schema / properties / user_context / description
Previous value: -"Optional short hint describing the kind of view/template being created (1-64 chars, letters/numbers/spaces only; must contain at least one letter or digit). Omit to send no hint. Example: \"photo collection\" or \"contract tracker\". (used by: metadata-template-suggest-fields)"New value: +"Short view/template hint (1-64 chars, letters/numbers/spaces). Example: \"photo collection\"."
changedInput schema / properties / workspace_id / description
Previous value: -"19-digit numeric ID or custom name"New value: +"Workspace opaque ID. Use this when only workspaces are valid (not shares or other contexts). For polymorphic contexts use profile_id. 19-digit numeric ID or custom name."