DocsMint
This DocsMint MCP server lets authorized agents search, browse, read, inspect, and manage documents, indexing, trash, and workspace items.
Search or list readable documents with hybrid text/semantic retrieval, tag/folder filters, pagination, and workspace scoping.
Read a document by UUID in detail, Markdown export, or version-history views, including saved snapshots.
Discover related documents through graph neighbors or graph-based seed-document search.
Check a document's indexing/pipeline status and queue explicit asynchronous reindexing.
List soft-deleted documents, restore them from trash, or permanently purge them when explicitly requested.
Run bounded batch actions on 1–25 explicitly selected documents: move, set category, add/remove tag, trash, restore, or refresh index.
Read visible folders, categories, and tags by UUID and use workspace structure to find IDs and scopes.
Respect API-key permissions, category scopes, workspace selection, and read-only/destructive annotations.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
DocsMint
Turn your documents into knowledge you and your AI agents can use.
Write and organize notes, guides, and project documentation in one workspace. Find answers with search that understands related concepts, then give your agents access to the same documents through MCP, REST, the SDK, or CLI.
Connect DocsMint Cloud to get started without operating the stack, or self-host with Docker to run the Apache-2.0 application on your own infrastructure.
Connect your AI agent
Connect DocsMint Cloud instantly or run the self-hosted stdio bridge against your own DocsMint API. Both paths give agents access to persistent knowledge; the self-hosted bridge exposes 22 focused tools covering all 31 existing operations plus bounded batch actions and direct workspace-item inspection, with 2 prompts and 3 resources.
Recommended: DocsMint Cloud setup. No server installation is required. Sign up or log in, choose your workspace, and follow your client's connection instructions. OAuth-capable clients use browser consent; API-key clients create an MCP/API credential in the authenticated browser UI. Hosted MCP follows your plan and workspace permissions. Prefer workspace-bound or category-scoped credentials.
The Cloud endpoint is https://docsmint.com/mcp (Streamable HTTP). OAuth-capable
clients discover the hosted resource and authorization-server metadata; current
authorization and client-connection methods are described in the
DocsMint Cloud setup guide.
Browser consent binds access to the selected workspaces, optional categories, and requested scopes.
DocsMint Cloud 1.1.9 and later supports hourly access tokens and rotating refresh tokens for up to
30 days from authorization when the client supports renewal. Existing connections need one reconnect
to enable refresh; clients without refresh support still reconnect after access expires.
API-key clients can instead send
Authorization: Bearer <key> with an MCP/API credential created in the authenticated
browser UI. Credentials cannot create or elevate other credentials; lifecycle
management belongs to the signed-in browser session.
Self-hosted alternative: run DocsMint with Docker, create an API
key in its browser UI, and configure HIAI_DOCS_URL and HIAI_DOCS_API_KEY for
npx --yes --package @hiai-gg/docsmint docsmint-mcp. Install Bun 1.4.4 or
later to execute the published binary. The npm package is a stdio bridge to
your own API; it does not install the DocsMint application or Cloud OAuth server.
See the MCP guide
for client configuration. The Glama OSS Server listing
describes this bridge; the hosted DocsMint Cloud Connector
is a separate listing.
Related MCP server: en-quire
Why DocsMint?
Keep knowledge easy to edit. Use a rich visual editor or Markdown; organize documents with folders, categories, and tags.
Find the document you mean. Search combines keywords, meaning, typo tolerance, and graph relationships across languages.
Keep agents close to the source. Let your tools search, read, and update the same knowledge through MCP, REST, a typed SDK, and CLI.
Choose what an integration can access. Category keys grant explicit
read,edit, andwritepermissions for a defined part of your library.Keep retrieval up to date. Document edits and metadata changes refresh the search index automatically in the background.
Choose how you run it. Use managed DocsMint or self-host the application, database, search, queues, and files.
Security patch 2.1.1
Bun 1.4.4, SvelteKit/Vite and Better Auth patch refreshes preserve the existing MCP/REST contract. See 2.1.1 release notes and the security report.
What's new in 2.1.0?
Add stateless Bearer HTTP MCP for self-hosted installations, including the public web-origin proxy and configurable Origin/CORS policy.
Keep the 22-tool catalog and generate schemas, annotations and branch examples from real MCP discovery.
Return redacted argument diagnostics as JSON-RPC errors without replacing upstream dispatch; keep compatible compact text and structured results.
Add server-side document filters, stable cursor pagination, scoped totals, previews, metadata-rich export and normalized search fields.
Add credential/workspace discovery and an explicit SDK API prefix while retaining existing routes, fields and methods.
Previous release: 2.0.4
Hosted MCP integrations can discover granted workspaces, including empty spaces, with
list_workspace_structure(kind="workspaces") and select one with the optional
workspaceId argument. The catalog remains 22 tools. Host authorization hooks preserve
the connection's existing workspace/category boundaries. Multi-scope reads carry labeled
results and independent pagination. Existing single-scope calls remain compatible.
The OSS frontend adopts SvelteKit 3; dependency updates resolve the current security audit findings. No database migration is required. See the 2.0.4 release notes.
Previous release: 1.0.3
Make MCP tool selection clearer: use a single-document tool for one document and
batch_documentswhen multiple explicit IDs need the same action.Keep the 22-tool catalog, all 31 underlying operations, input schemas, authorization, and stdio behavior unchanged. The LobeHub tool descriptions match the released MCP catalog.
DocsMint Cloud remains a separate hosted Connector. Cloud descriptions change only when the hosted service adopts this package version.
No database migration is required. See the release notes and changelog.
Install with an AI agent
Prefer an assisted self-hosted setup? Give your coding agent this prompt. You will need Docker and a choice of AI provider.
Install DocsMint from https://github.com/HiAi-gg/docsmint.
Verify Docker and Docker Compose v2, clone the repository, and run
`bash scripts/quickstart.sh`. Do not print or commit .env. Ask me to enter only
an OpenRouter key or select Ollama, then run quickstart again. Verify
http://localhost:50701, http://localhost:50700/api/health, and
`docker compose ps`. Do not replace Bun, rewrite migrations, disable GraphRAG,
or delete volumes.After startup, open http://localhost:50701 and create the first account. For manual installation, use the Docker quickstart below.
Quickstart
Requirements
Docker Engine or Docker Desktop
Docker Compose v2
One of:
an OpenRouter API key; or
a local Ollama instance
Start with Docker
git clone https://github.com/HiAi-gg/docsmint.git
cd docsmint
bash scripts/quickstart.shOn its first run, the script creates an ignored root .env, generates the
database, authentication, and storage secrets, builds the PostgreSQL image,
applies migrations, and starts the complete application.
Published application images are on
Docker Hub. There is no untagged
latest image; pull the role-specific tags:
docker pull vgalibov/docsmint:api-latest
docker pull vgalibov/docsmint:web-latest
docker pull vgalibov/docsmint:caddy-latestUse versioned tags api-v1.0.3, web-v1.0.3, and caddy-v1.0.3 for
reproducible deploys. Caddy is the supporting reverse proxy with rate limiting;
it is separate from the API and web application. The quickstart still builds the Compose stack from this repository so PostgreSQL,
Redis, and SeaweedFS start together with the application.
For OpenRouter, add one value to .env and run the script again:
OPENROUTER_API_KEY=sk-or-your-keyFor Ollama, select the local provider instead:
AI_PROVIDER=ollama
OLLAMA_PORT=11434Then make sure the configured local models are available:
ollama pull bge-m3
ollama pull qwen3:8b
bash scripts/quickstart.shOpen http://localhost:50701. The API health endpoint is http://localhost:50700/api/health.
First use
Create your account in the web application.
Create a category or folder and add or import a document.
Wait for the document pipeline to finish chunking and embedding.
Search using an exact phrase, a related concept, an alternate language, or a misspelling.
Open Settings → API when you want to connect a CLI, MCP client, or external application.
The canonical local ports are:
Service | Port |
Web application |
|
REST API |
|
PostgreSQL |
|
Redis |
|
SeaweedFS S3 gateway |
|
SeaweedFS filer UI |
|
See Deployment for domains, TLS, provider tuning, backups, and production operation.
Embedding provider URLs, models, and credentials are deployment configuration. They are never stored in browser settings or local storage.
Use DocsMint from the terminal
One public package, @hiai-gg/docsmint, includes the TypeScript SDK,
docsmint CLI, and docsmint-mcp bridge. These clients connect to a running
DocsMint deployment; use the Docker quickstart to install the self-hosted server.
bun add @hiai-gg/docsmintbunx --package @hiai-gg/docsmint docsmint init \
--url http://localhost:50700 \
--key 'your-global-or-category-key'
bunx --package @hiai-gg/docsmint docsmint search "project architecture"
bunx --package @hiai-gg/docsmint docsmint list
bunx --package @hiai-gg/docsmint docsmint read <document-id>
bunx --package @hiai-gg/docsmint docsmint create \
--title "Release notes" --content "# Highlights"Credentials can also be supplied through HIAI_DOCS_URL and
HIAI_DOCS_API_KEY. See the CLI guide for every
command and configuration precedence.
Connect an MCP client
Give agents a secure path to search, read, and maintain your knowledge without database or filesystem access. DocsMint publishes MCP tools plus ready-made research prompts, scoped resources, and a document-manager skill.
Hosted DocsMint
Connect directly to the managed Streamable HTTP endpoint. Keep the API key in an environment variable rather than writing it into client configuration:
codex mcp add docsmint \
--url https://docsmint.com/mcp \
--bearer-token-env-var HIAI_DOCS_API_KEYSelf-hosted DocsMint
Run the published stdio bridge against your own DocsMint API:
{
"mcpServers": {
"docsmint": {
"command": "npx",
"args": ["--yes", "--package", "@hiai-gg/docsmint", "docsmint-mcp"],
"env": {
"HIAI_DOCS_URL": "http://localhost:50700",
"HIAI_DOCS_API_KEY": "your-global-or-category-key"
}
}
}
}Category keys let you expose only the documents and operations an agent needs. Use a global key only for trusted owner-wide automation. See the complete MCP reference for Bun, npm, local checkout, all tools, prompts, resources, permissions, and REST mappings.
Self-hosted HTTP
The same 22-tool contract is also available at /mcp on your installation's
public web origin. With the default Compose ports, that is
http://localhost:50701/mcp; with Caddy, use your normal application domain,
such as https://docs.example.com/mcp. The web server streams requests to the
backend using its trusted API_URL setting (http://api:50700 in Compose).
Do not point API_URL back at the public web server.
Create a global or category-scoped key in Settings → API, then supply it as an environment variable to your MCP client:
codex mcp add docsmint-selfhost \
--url https://docs.example.com/mcp \
--bearer-token-env-var HIAI_DOCS_API_KEYSelf-hosted HTTP uses Authorization: Bearer <key>; it does not implement
DocsMint Cloud OAuth or accept a browser session as an API credential. Category
keys keep their existing category and independent read/edit/write restrictions.
An ordinary OSS installation has a personal space rather than Cloud workspace
slugs: omit X-Docsmint-Workspace on these requests.
Configure the public application URL and the exact browser origins you trust:
PUBLIC_APP_URL=https://docs.example.com
CORS_ORIGINS=https://docs.example.com,https://trusted-client.example.com
MCP_HTTP_ENABLED=truePUBLIC_APP_URL is used for trusted absolute document links; leaving it unset
keeps OSS document links relative. CORS_ORIGINS applies to the HTTP integration
endpoints. An allowed browser origin receives CORS headers, an unknown Origin
is rejected, and authenticated server clients may omit Origin. Do not use a
wildcard for credentialed browser access. Compose passes these settings to the
API container; restart the application through your normal deployment workflow
after changing them.
The HTTP transport is stateless and does not issue Mcp-Session-Id. Send MCP
JSON-RPC through POST; accepted notifications return 202. GET and DELETE return
405 because this endpoint provides neither a standalone SSE listener nor
server-side sessions. Clients must accept JSON and SSE responses: the installed
MCP SDK can use SSE for legacy protocol requests even when modern JSON mode is
configured. /mcp/ is normalized internally without redirecting the POST or
dropping its Bearer header. The proxy preserves response status, authentication
challenges, CORS headers and streaming bodies, and does not forward browser
cookies or server workspace assertions as authority.
Set MCP_HTTP_ENABLED=false to disable this HTTP endpoint independently. The
existing REST API and stdio bridge remain available; existing stdio client
configuration does not need to change.
TypeScript SDK
bun add @hiai-gg/docsmintimport { DocsClient } from '@hiai-gg/docsmint';
const docs = new DocsClient({
baseUrl: 'http://localhost:50700',
apiKey: process.env.HIAI_DOCS_API_KEY,
});
const created = await docs.createDoc({
title: 'Meeting notes',
content: '# Agenda',
});
const results = await docs.search('what did we decide?');
console.log(created.id, results.items);The SDK is a typed fetch client with retries for transient failures and
idempotent document creation retries. See the
SDK reference and REST API.
API keys and integrations
Create and revoke integration keys from Settings → API.
Credential | Intended use | Access |
Global API key | Trusted owner-wide CLI, MCP, SDK, or service | All owner content |
Category key | Least-privilege agent or product integration | One category with selected permissions |
Operator key | Administration and reindex operations |
|
Category permissions are explicit and non-hierarchical:
readpermits list, read, search, and export;editpermits updates to existing content, attachments, and versions;writepermits create, move, delete, share, and publish operations.
Combine permissions when an integration needs more than one capability.
API-key lifecycle operations require the owning browser session; an API key
cannot create or elevate another key. Server-to-server integrations are not
affected by browser CORS. Browser integrations must add their exact origin to
CORS_ORIGINS.
What is included?
Documents use structured TipTap JSON as canonical content. Markdown is the source-editing, import, and export format. The same document store serves the web application and public integration interfaces.
frontend/ SvelteKit workspace and TipTap editor
backend/ Elysia REST API, search, workers, and authentication
packages/db/ Drizzle schema and migrations
packages/sdk/ Typed API client
packages/cli/ Terminal client
packages/mcp-server/ MCP stdio and HTTP contract
postgres/ PostgreSQL image with vector and graph extensionsThe Docker deployment runs:
Web — document editor, folders, categories, sharing, settings, and search;
API — documents, attachments, versions, keys, search, and administration;
PostgreSQL 18 — relational data, pgvector/pgvectorscale vectors, and the Apache AGE graph in one database;
Redis 8 — BullMQ queues, caching, retries, and job recovery;
SeaweedFS — S3-compatible attachment storage.
How search works
Every document save schedules background work. Content is chunked, changed chunks are embedded, and the completed generation is activated atomically. The previous valid generation remains searchable if a provider call fails.
Search combines exact title matches, multilingual lexical search, typo-tolerant fuzzy matching, semantic vectors, adaptive query expansion, and Apache AGE graph neighbors. Reciprocal rank fusion combines the channels without allowing one weak provider result to dominate. A cross-encoder then reranks the fused prefix against the original query (Voyage rerank-2.5 by default). On a labeled 24-document corpus that moved MRR 0.969 → 1.000 and nDCG@10 0.958 → 0.986 versus RRF-only. Rerank, expansion, embeddings, and AGE failures keep the remaining channels. Authorization is applied before retrieval and again before results are returned.
GraphRAG is part of the normal search path in the reference configuration. It extracts entities after embeddings are ready and finds related documents beyond direct keyword or vector similarity. It degrades gracefully when an external model is unavailable.
For pipeline internals and tuning, see Architecture and Deployment.
Stack
Bun 1.4.4+, TypeScript, Elysia, Zod, and Pino
Svelte 5, SvelteKit, Tailwind CSS, and TipTap
Better Auth and Drizzle ORM
PostgreSQL 18, pgvector, pgvectorscale, and Apache AGE
Redis 8 and BullMQ
SeaweedFS with its S3-compatible API
OpenAI-compatible providers through OpenRouter or local Ollama
Documentation
REST API and OpenAPI JSON
Development
Use Bun 1.4.4 or later for local development.
bun install
bun run lint
bun run typecheck
bun run test
bun run buildRead CONTRIBUTING.md before opening a pull request. Please report vulnerabilities through SECURITY.md, not a public issue.
License
DocsMint is released under the Apache License 2.0.
Built as an independent open-source project in the HiAi ecosystem.
Available Tools
22 toolsbatch_documentsADestructiveInspect
Use for multiple explicitly selected documents that need the same action; for one document prefer the matching single-document tool. Accepts 1–25 IDs for automation compatibility. Supports move, set_category, add_tag, remove_tag, trash, restore, or refresh_index. Processes sequentially through the existing API with a permission check per document and a per-ID result; partial success is possible. Stops after authentication or rate-limit failure. Never expands a search result or permanently purges documents; version restore is separate.
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | No | ||
| action | No | ||
| folderId | No | Destination folder UUID, or null for no folder. | |
| categoryId | No | Category UUID, or null to clear explicit category. | |
| documentIds | No | One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| action | Yes | |
| failed | Yes | |
| aborted | Yes | |
| results | Yes | |
| succeeded | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive=true and idempotent=false, but the description adds genuinely new context: sequential processing with a per-document permission check, per-ID results, partial success, and stopping on auth/rate-limit failure. The one gap is it doesn't say what trashing vs. permanent deletion means for recovery timing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph, front-loaded with the selection rule and alternatives before behavioral detail. Slightly long, and the ID-count sentence duplicates the schema, but nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and per-ID results are described, the description covers the failure model, concurrency model, and action scope needed to invoke a complex multi-action tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the schema already documents each action's const, documentIds bounds, and workspaceId sourcing. The description's '1–25 IDs' restates the schema's minItems/maxItems rather than adding new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource combination (batch actions on explicitly selected documents) and enumerates the seven supported actions. It is immediately distinguishable from single-document siblings, which it explicitly points to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit selection rule: use for multiple explicitly selected documents, prefer the matching single-document tool for one. It also rules out search expansion and version restore, routing those to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_snapshotAInspect
Save a named snapshot of an existing document before a planned change. The snapshot can later be restored with restore_document_version.
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Snapshot label, from 1 to 200 characters. | |
| documentId | Yes | UUID returned by the corresponding list or read operation. | |
| description | No | Optional snapshot note, at most 1000 characters. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| label | No | |
| content | Yes | |
| createdAt | Yes | |
| createdBy | Yes | |
| documentId | Yes | |
| isSnapshot | No | |
| contentJson | No | |
| description | No | |
| restoredFrom | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false, idempotentHint=false and openWorldHint=false, and the description's 'can later be restored' reinforces that the operation is safe and reversible. However, it does not disclose what the agent would most want beyond the annotations: whether calling twice with the same label creates duplicates, whether existing snapshots are affected, or whether any permission/grant is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with the action and then the recovery path. No redundant restatement of the name or title, and nothing that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-destructive write with full schema coverage and an output schema, the description covers the essentials: what is created and how it is undone. The remaining gap is duplicate-label behavior and permission expectations, which are minor given the annotation safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (label, documentId, description, workspaceId) is already documented in the schema, including the ambiguity rule for workspaceId. The description adds nothing parameter-specific beyond the word 'named,' which implicitly maps to label — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Save a named snapshot of an existing document.' The label/document semantics and the pre-change timing make the operation immediately understandable. It also names restore_document_version as the counterpart, though it does not distinguish itself from save_document, the nearest sibling that also writes document state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear usage condition — 'before a planned change' — and points to restore_document_version as the way to undo. It stops short of explicit exclusions (e.g., when to use save_document or a version restore instead), so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_categoryADestructiveInspect
Delete a workspace category and detach its documents without deleting them. Requires full workspace write access; category-scoped credentials are denied.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses the critical behavioral detail that documents are detached rather than deleted. It also states the permission model, including that category-scoped credentials are denied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences. The destructive action and document-detachment behavior are front-loaded, followed by the authorization constraint, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation, the description covers the main risk (documents survive) and the auth requirement, while annotations and the output schema cover safety hints and return values. It does not address reversibility, failure conditions, or lifecycle details, but the core context is strong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both the required id and optional workspaceId are documented in the schema. The description adds no additional parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Delete a workspace category.' It also states the key side effect, 'detach its documents without deleting them,' which distinguishes this from document, folder, and tag deletion siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an authorization prerequisite ('Requires full workspace write access; category-scoped credentials are denied'), which helps an agent know when the call will fail. However, it does not explain when to use this tool versus alternatives such as save_category or delete_document.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_documentADestructiveInspect
Move one document to trash without purging content or versions. Use batch_documents(action=trash) for multiple explicit IDs. Requires write access and an explicit delete request; permanently_delete_document is a separate irreversible action.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and non-idempotent, so the description earns credit for the extra context: content and versions are retained, write access and an explicit delete request are required, and permanent deletion lives elsewhere. Missing only detail on whether the document lands in list_trash or how long it is retained before purge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the effect and the reversibility guarantee, then alternatives, then prerequisites. No sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need no explanation; the description covers the remaining agent-critical facts — recoverability, authorization requirement, and the sibling routing — for a two-parameter mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both id and workspaceId are already documented in the schema. The description adds no syntax, format, or ambiguity guidance beyond that, leaving this at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Move one document to trash') and immediately bounds the effect ('without purging content or versions'). The singular scope plus the contrast with batch_documents makes it unmistakable among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes multiple explicit IDs to batch_documents(action=trash) and names permanently_delete_document as the separate irreversible path. The agent has a clear decision rule for all three cases without opening a schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_folderADestructiveInspect
Delete a folder while preserving its documents; child folders and documents are detached under the API rules. Requires write access.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered; the description adds the non-obvious side effects (documents survive, children are detached) and the write-access requirement. It stops short of saying whether the folder itself is recoverable via list_trash/restore, which for a destructive tool would be valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and the critical side effect, with the prerequisite trailing. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full input schema, an output schema, and destructive annotations, the description supplies exactly the missing semantic layer: what survives deletion and what permission is needed. The only gap is recoverability, which an agent planning a destructive call would reasonably want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'id' and the optional 'workspaceId' are already documented in the schema, including their UUID sourcing guidance. The description adds nothing further about parameter values; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a folder') and immediately disambiguates the outcome from sibling delete tools: documents are preserved while child folders and documents are detached. An agent can distinguish this from delete_document, delete_category, and delete_tag without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Requires write access' gives a prerequisite, and preserving documents implies when to prefer this over per-document deletion. But there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. list_trash / permanently_delete_document for hard removal).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_tagADestructiveInspect
Delete a workspace tag and remove its document assignments. Full workspace write access is required; documents themselves remain.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=false, so the safety bar is lower; the description still adds real payload facts — tag assignments are removed while documents survive — plus the permission requirement. It doesn't mention irreversibility or whether the tag must be unassigned first, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the destructive effect and the survival of documents front-loaded before the permission caveat. Every clause carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A destructive, non-idempotent mutation with full schema coverage and an output schema, so the description needn't explain returns. It covers effect and auth; a note on irreversibility or cascade behavior would complete it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both id and workspaceId documented in the schema itself, so baseline applies. The description adds no parameter-level meaning — notably nothing about workspaceId being omittable for searches versus needed for this structure change.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete a workspace tag') and adds scope ('remove its document assignments'), which separates it from delete_category/delete_document siblings by resource type. It stops short of naming which sibling to prefer, but the object being acted on is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a prerequisite ('Full workspace write access is required') but never says when to choose this over save_tag, delete_category, or set_document_tag (e.g., unassign vs delete). Usage is implied by the verb rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explore_graphARead-onlyIdempotentInspect
Explore graph relations from readable seed documents. mode=neighbors traverses one document without a query; mode=search ranks relations from one or more seed IDs with optional query text.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| limit | No | Maximum results to return, up to 100. | |
| query | No | Optional graph relevance query, at most 2000 characters. | |
| docIds | No | One to 50 authorized seed document UUIDs. | |
| documentId | No | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations provide safety hints like 'readOnlyHint: true,' the description adds critical behavioral detail about the differing internal operations of the two modes, outlining how each mode functions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence that effectively covers the tool's core functionality and its primary behavioral split between modes without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description successfully simplifies the complex `oneOf` schema structure by framing the tool around its two distinct behavioral modes (neighbors and search), making it highly actionable for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given the high schema description coverage (83%), the baseline score applies. The description adds semantic value by explaining the functional difference between the `mode` arguments (neighbors vs search) rather than redundant parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose as exploring graph relations from readable seed documents. It distinguishes between two operational modes: traversal (neighbors) and ranked search (search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the functional criteria for selecting either mode: 'neighbors traverses one document without a query,' versus 'search ranks relations... with optional query text.' This guides the agent on when to use which specific configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_documentsARead-onlyIdempotentInspect
Find readable documents in the active scope. Use mode=list for paginated browsing by folder or tag UUID; use mode=search for hybrid text and semantic retrieval with tag names.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Literal case-insensitive title/content filter; does not invoke semantic search. | |
| tag | No | UUID returned by the corresponding list or read operation. | |
| mode | No | ||
| page | No | One-based page number; defaults to the API first page. | |
| tags | No | Optional tag names; all supplied names must match. | |
| limit | No | ||
| query | No | Text to search in the original language. | |
| folder | No | Optional folder UUID filter for search. | |
| sortBy | No | Stable server-side sort field; defaults to updatedAt. | |
| tagIds | No | Filter by tag UUIDs; cannot combine with the legacy tag field. | |
| folderId | No | UUID returned by the corresponding list or read operation. | |
| rootOnly | No | Return only documents without a folder; cannot combine with folderId. | |
| tagMatch | No | Require all supplied tags by default, or any supplied tag. | |
| sortOrder | No | Sort direction, descending by default with an ID tie-breaker. | |
| updatedTo | No | Exclusive updated timestamp upper bound, with timezone. | |
| categoryId | No | Filter by effective category UUID, including inherited folder placement. | |
| visibility | No | Optional document visibility filter; never expands access. | |
| updatedFrom | No | Inclusive updated timestamp lower bound, with timezone. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. | |
| includeChunks | No | Include matching text chunks only when requested. | |
| includeDiagnostics | No | Include redacted diagnostic details; omitted by default. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds that results are limited to "readable" documents in the active scope, which implies access filtering, but says nothing about pagination caps, result ordering, or what the search mode returns beyond the schema/output contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core purpose front-loaded and the mode split immediately after. Every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 21-parameter tool with two mutually exclusive parameter sets, the description explains the mode split but not which parameter families belong to which mode, nor the workspaceId scoping default (search all granted scopes when omitted). The oneOf schema and output schema cover the rest, so this is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 90%, so the schema carries most parameter meaning. The description still adds real value by clarifying that list mode filters by tag UUID while search mode takes tag names, and by characterizing the search query as hybrid text + semantic rather than a literal match.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Find readable documents") plus the scope qualifier ("in the active scope"), and splits the tool's two distinct behaviors (list vs search) explicitly. It does not contrast itself against siblings like read_document or explore_graph, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing: mode=list for paginated browsing by folder or tag UUID, mode=search for hybrid text/semantic retrieval with tag names. That is a clear when-to-use rule for the internal fork, but there is no guidance on when to pick this tool over sibling retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_document_index_statusARead-onlyIdempotentInspect
Read current indexing and pipeline status for one document without starting work. Use refresh_document_index only when an explicit retry is intended.
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pipeline | Yes | |
| documentId | Yes | |
| searchable | Yes | |
| embeddingStatus | Yes | |
| embeddingProfile | Yes | |
| activeGenerationId | Yes | |
| embeddingErrorCode | Yes | |
| embeddingUpdatedAt | Yes | |
| pendingGenerationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds a meaningful behavioral detail beyond annotations: this read does not start indexing work, which is precisely why it differs from refresh_document_index. It does not discuss rate limits or workspace scoping, but the essential non-mutating nature is made explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is two tight sentences with zero waste. The core purpose is front-loaded, and the alternative-use warning follows immediately in a compact routing sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status-read tool, the description covers purpose, behavioral distinction from the retry sibling, and the fact that no work is started. The output schema exists, annotations already declare the safety profile, and parameter descriptions are fully covered by the schema, leaving no material gap for an agent to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, including clear descriptions for documentId and workspaceId, so the schema already carries parameter semantics. The description only implies that status is scoped to one document and does not add syntax, format, or workspace-scope guidance beyond what is already in the schema. Baseline 3 is appropriate when structured fields do the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb + resource: 'Read current indexing and pipeline status for one document.' It also distinguishes the tool from the sibling refresh_document_index by clarifying that this tool does not start work. An agent can tell exactly what this tool does and what it is not for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly routes the agent to refresh_document_index only when an explicit retry is intended, which is a clear alternative-use condition. The phrase 'without starting work' also clarifies when this read-only status check is appropriate instead of initiating a retry. Nothing material is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_itemARead-onlyIdempotentInspect
Read one visible folder, category, or tag by UUID. Folder uses its direct API getter; category and tag lookup uses the complete permission-filtered lists. An absent or out-of-scope ID is reported as not found. Use list_workspace_structure to discover IDs first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID of an item visible to the active API key. | |
| kind | Yes | The workspace resource type to read by ID. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, non-destructive behavior, but the description adds real value: folder lookup uses a direct API getter while category/tag use permission-filtered lists (a latency/consistency difference), and an absent or out-of-scope ID is surfaced as 'not found' rather than an error. That not-found semantics is the kind of thing an agent needs and cannot infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences with zero filler: purpose first, implementation differences second, error semantics third, prerequisite last. Every sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description's burden is light, and it still covers the two non-obvious behaviors (per-kind lookup mechanism, not-found reporting). The only gap is silence on the optional workspaceId scoping parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents id, kind, and workspaceId, and the enum pins the allowed kinds. The description only restates the three kinds and adds visibility scoping for IDs; it says nothing about the optional workspaceId parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) plus the exact resource set (one visible folder, category, or tag) scoped to UUID. This cleanly separates it from siblings like save_folder, delete_category, and list_workspace_structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to list_workspace_structure for ID discovery, which is the key prerequisite. It stops short of stating when a caller should prefer a bulk list call over repeated single reads, but the primary usage condition is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_trashARead-onlyIdempotentInspect
List soft-deleted documents visible to the active workspace or category scope. Requires read access and does not restore or purge anything.
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, and idempotent behavior, so the description adds mainly the auth requirement ('Requires read access') and clarifies that it won't restore or purge. This is useful context beyond the annotations, but it does not cover rate limits, pagination, or return format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and scope. The second sentence adds auth and side-effect clarity without redundancy, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter, the description covers purpose, scope, auth requirement, and non-destructive nature. An output schema exists, so return values need not be explained; the description is largely complete, though it could mention pagination or default ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional workspaceId parameter is fully documented in the schema. The description adds a minor scope hint ('visible to the active workspace or category scope'), but does not provide syntax or default behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (List) and resource (soft-deleted documents) with scope (active workspace or category). It implicitly distinguishes itself from restore/purge siblings by explicitly stating it does not perform those actions, though it doesn't name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'does not restore or purge anything' signals when not to use this tool (i.e., for recovery or permanent deletion), and 'Requires read access' implies a prerequisite. However, no alternative tool is named, leaving the agent to infer that restore_trashed_document or permanently_delete_document should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workspace_structureARead-onlyIdempotentInspect
Discover permitted spaces with kind=workspaces, including empty spaces; use returned workspaceId for scoped operations. List folders, categories, or tags; set kind=folders for root folders or children of parentId. Unselected reads cover all granted scopes when supported by the host.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| parentId | No | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuine behavior beyond that: empty spaces are included in workspace discovery, and unscoped reads cover all granted scopes only 'when supported by the host'. The latter is vague about what happens if the host does not support it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the primary discovery mode before branching to the other kinds. No filler, though the closing sentence about host support is cryptic enough that it costs a little clarity for its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all four kind variants and the parentId/workspaceId interplay, which is the substance an agent needs to call it. With an output schema present, return values need no explanation. Minor gaps remain around ordering/pagination and categories/tags scoping rules.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with fairly detailed kind/workspaceId descriptions. The description adds meaning the schema lacks, notably that parentId selects children of a parent folder and that workspaceId is reused from a preceding kind=workspaces call. The categories/tags scoping behavior relative to workspaceId is not spelled out.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verbs and resources: 'Discover permitted spaces with kind=workspaces' and 'List folders, categories, or tags'. This is important because the tool name only mentions 'workspace_structure' while the tool actually also enumerates categories and tags. It doesn't name any sibling (e.g. save_folder/delete_tag) as a contrast, so the differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear guidance on which kind to pick: kind=workspaces to discover spaces and obtain a workspaceId for later scoped calls, kind=folders for root folders or children of parentId. It also explains that omitting workspaceId broadens reads to all granted scopes. It stops short of naming alternatives or stating when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
permanently_delete_documentADestructiveInspect
Irreversibly purge a document already in trash, including its version history. Use only on an explicit user request after checking list_trash.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, but the description adds the details an agent actually needs before firing: the operation is irreversible and it destroys version history, and the target must already be in trash. That is exactly the 'what gets destroyed' context the annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the irreversible consequence front-loaded ahead of the usage restriction. Every clause carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive single-target purge with full schema coverage, an output schema, and complete annotations, nothing material is missing: what it does, what is lost, what precondition must hold, and what to check first are all stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the id parameter documented as a UUID from a list/read operation and workspaceId explained as optional scope. The description adds no further syntax or format detail, so the documented baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('irreversibly purge a document') plus a narrowing precondition ('already in trash, including its version history') that separates it from sibling soft-delete tools like delete_document. An agent can pick this over delete_document or restore_trashed_document without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a hard usage gate ('use only on an explicit user request') and a concrete prerequisite ('after checking list_trash'), which is real routing guidance. It stops short of naming the alternatives for the non-trashed case (delete_document) or the undo path (restore_trashed_document), so the when-not side is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_documentARead-onlyIdempotentInspect
Read one document by UUID. Choose detail for content and metadata, markdown for portable export, or versions for saved revisions and snapshots. All views are read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID returned by the corresponding list or read operation. | |
| view | No | ||
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. | |
| onlySnapshots | No | When true, return only named snapshots. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so "All views are read-only" merely restates structured data and earns no credit. The description does add a little behavioral content by characterizing what versions returns (saved revisions and snapshots), but says nothing about permissions/scope behavior, version ordering, or result volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: the action first, the view decision second, the safety guarantee last. No filler, no repetition, and the most important disambiguation (which view) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return value detail is not required, and the description covers the main discriminator (view) plus the read-only guarantee. It leaves the optional onlySnapshots flag and workspaceId scoping behavior to the schema, which is acceptable given 75% coverage but keeps it short of fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's own view descriptions are tautological ("Select the detail operation explicitly"), so the description's mapping of detail/markdown/versions to actual outputs adds genuine meaning beyond the schema. workspaceId and onlySnapshots are left entirely to the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Read one document by UUID" is a specific verb+resource with a clear single-item scope, and the three view modes make the tool's shape explicit. It does not explicitly contrast with siblings such as find_documents (which is how you obtain the UUID) or get_workspace_item, so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives the key selection guidance an agent needs: use detail for content+metadata, markdown for portable export, versions for revisions/snapshots. That covers the internal choice well. It stops short of saying when to reach for this tool versus find_documents or get_document_index_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_document_indexAInspect
Queue an explicit asynchronous reindex for one document; use batch_documents(action=refresh_index) for multiple explicit IDs. Routine content and placement changes already schedule indexing; check get_document_index_status first.
| Name | Required | Description | Default |
|---|---|---|---|
| documentId | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| documentId | Yes | |
| deduplicated | Yes | |
| generationId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (not read-only, not destructive, not idempotent), and the description adds meaningful behavior beyond them: the operation is asynchronous (queued, not immediate) and is often unnecessary because routine edits auto-schedule indexing. It stops short of saying what happens on duplicate queueing or how completion is observed, which would round out the async story.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler. The primary action is front-loaded, followed by the sibling routing and the precondition check in descending order of importance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and both parameters are fully described in the schema. The description fills the remaining gaps an agent needs: async nature, sibling routing, and the prerequisite status check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both documentId and workspaceId are already documented in the schema. The description only implies the single-document constraint ('one document') without adding format, scoping, or ambiguity-resolution detail. Baseline 3 applies when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Queue an explicit asynchronous reindex for one document') with clear scope ('one document'). It also distinguishes itself from the batch sibling that handles multiple IDs, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative (batch_documents(action=refresh_index)) and the condition that selects it, then adds two negative conditions: routine content/placement changes already schedule indexing, and get_document_index_status should be checked first. This is an unusually complete when/when-not/alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_document_versionADestructiveInspect
Restore content from a version or snapshot listed by read_document(view=versions). This changes current content and queues indexing; it does not restore a trashed document.
| Name | Required | Description | Default |
|---|---|---|---|
| versionId | Yes | UUID returned by the corresponding list or read operation. | |
| documentId | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| tags | No | |
| title | Yes | |
| content | Yes | |
| ownerId | Yes | |
| folderId | Yes | |
| metadata | No | |
| createdAt | Yes | |
| updatedAt | Yes | |
| categoryId | Yes | |
| folderName | No | |
| visibility | Yes | |
| contentJson | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is known. The description adds real behavioral context beyond that: current content is overwritten and an indexing job is queued as a side effect. It stops short of saying whether the prior content is itself snapshotted or whether the restore is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core mutation and the queued-indexing consequence come first, and the exclusion follows as a scoping clause. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations already cover the return shape and safety profile, so the description only needs to explain side effects and boundaries — which it does. The only gap is not stating whether a rollback snapshot is created before overwriting current content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage the baseline is 3, but the description adds a retrieval path for versionId ('listed by read_document(view=versions)') that is more actionable than the schema's generic 'UUID returned by the corresponding list or read operation.' workspaceId and the required UUID pairing are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb and resource (restore content from a version/snapshot) and immediately scopes it against the sibling restore_trashed_document with 'it does not restore a trashed document.' An agent can distinguish it from the other 20 siblings without reading any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells the agent where the versionId comes from (read_document with view=versions), which is a concrete precondition for use. It also excludes the trashed-document case, implicitly routing that need to restore_trashed_document, though it never names that sibling explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_trashed_documentAInspect
Return one document from trash to the active library; use batch_documents(action=restore) for multiple explicit IDs. This restores the document itself, unlike restore_document_version which changes content.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=false, openWorldHint=false, idempotentHint=false), so the description needn't restate it. The description adds the useful scope distinction that only the document itself is restored, but says nothing about what happens if the document is not in trash or whether a second call fails — relevant given idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, and the primary behavior comes before the sibling disambiguations. Every clause carries routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. The description is nearly complete for a single-entity mutation; only failure/edge-case behavior (document not in trash) is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the id and workspaceId parameters are fully documented in the schema itself, including where to obtain each UUID. The description adds no parameter-level detail, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Return one document from trash to the active library') and immediately distinguishes itself from two siblings by name. An agent can tell it apart from restore_document_version and batch_documents without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use batch_documents(action=restore) for multiple explicit IDs, and restore_document_version if the goal is to change content rather than un-trash. Both the alternative and the selection condition are stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_categoryADestructiveInspect
Create or update a workspace category. Full workspace write access is required; category-scoped credentials cannot manage categories.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID returned by the corresponding list or read operation. | |
| name | No | Non-empty human-readable name or title. | |
| order | No | New non-negative display order. | |
| action | No | ||
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, and the description usefully adds that category-scoped credentials are rejected. However, it never explains what makes a save destructive — e.g. whether an update replaces name/order wholesale, what happens to items already filed under a renamed category, or what failure modes exist. Given a destructive write tool, the added context is real but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the operation scope stated first and the auth constraint second. Nothing redundant or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and rich annotations cover return shape and safety profile, and the auth note covers a key gate. Still missing for a destructive create-or-update tool: whether update is partial or full replacement, and what happens when a create is ambiguous without workspaceId — a case the schema itself flags.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already explains name, id, order, action, and workspaceId. The description adds nothing about parameter behavior — notably it does not clarify that id/order are forbidden on create or that workspaceId may be omitted. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair ("Create or update") and a specific resource ("workspace category"), which separates it from siblings like save_folder and save_tag by resource type. It does not explicitly name an alternative tool or clarify why category save is distinct from those siblings, keeping it just below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an auth prerequisite ("Full workspace write access is required; category-scoped credentials cannot manage categories") but never says when to create vs. update or when to prefer this over save_folder/save_tag. The create/update split is only inferable from the schema's action enum, so usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_documentADestructiveInspect
Create or update one document. Use action=create for a new document or action=update for an existing one; batch_documents handles the same placement change across multiple existing documents. Creation requires write access; content edits require edit access, and placement changes may require write access. Content or placement changes queue normal indexing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID returned by the corresponding list or read operation. | |
| title | No | Document title, from 1 to 500 characters. | |
| action | No | ||
| content | No | Markdown document content; an empty string clears the content on update. | |
| folderId | No | ||
| categoryId | No | Optional category UUID; null clears the explicit category. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a destructive, non-idempotent mutation, so the description benefits from adding permission requirements and side effects. It adds that creation needs write access, content edits need edit access, placement changes may need write access, and content or placement changes queue indexing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences and front-loads the core create/update behavior. Every sentence contributes actionable routing, permission, or side-effect information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the oneOf schema, annotations, and output schema, the description supplies the key decision context: create vs update, batch alternative, permissions, and indexing consequences. An agent has enough information to choose and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so most parameter meaning is already supplied by the schema. The description clarifies that action=create means new document and action=update means existing document, but it does not add much beyond the schema for the remaining parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: create or update one document. It also distinguishes the tool from batch_documents, which handles placement changes across multiple existing documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says action=create is for a new document and action=update is for an existing one. It names batch_documents as the alternative for multi-document placement changes and states the access-level prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_folderADestructiveInspect
Create or update a folder. action=update can rename or move an existing folder; the API enforces category boundaries and queues affected documents for reindexing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID returned by the corresponding list or read operation. | |
| name | No | Non-empty human-readable name or title. | |
| order | No | New non-negative display order. | |
| action | No | ||
| parentId | No | Optional parent folder UUID; null selects the root. | |
| categoryId | No | Optional category UUID; null clears the explicit category. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=false, but the description adds genuinely new behavior: the API enforces category boundaries and queues affected documents for reindexing. It does not disclose what specifically is destroyed or what permissions the category-boundary rule requires.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the core purpose is front-loaded, then the update branch, then the side effects. No filler and nothing repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with a rich oneOf schema and an output schema, the description covers purpose, the create/update split, and the reindexing side effect. The main remaining gap is permission/prerequisite context for the category-boundary enforcement and what a failed move does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (86%) and every property carries its own description, so the schema does the heavy lifting for parentId, categoryId, order, and workspaceId. The description only adds the category-boundary constraint, not per-parameter format or requiredness context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Create or update a folder") and immediately clarifies that the update branch covers rename or move. The folder entity cleanly separates it from siblings like save_category, save_tag, save_document, and delete_folder, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"action=update can rename or move an existing folder" gives clear context for choosing between the tool's two branches, which is the main routing decision an agent faces. It stops short of stating when not to use it or naming an alternative tool for cross-workspace or trash scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_tagADestructiveInspect
Create or update a workspace tag. Full workspace write access is required; renaming or recoloring a tag causes affected documents to be reindexed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID returned by the corresponding list or read operation. | |
| name | No | Non-empty human-readable name or title. | |
| color | No | Optional tag color, at most 20 characters. | |
| action | No | ||
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, readOnlyHint=false and idempotentHint=false. The description adds two genuinely non-obvious behavioral facts — the workspace write-permission requirement and the document reindexing side effect on rename/recolor — which is real incremental value. However it omits what an update actually destroys or whether an update with no color leaves the existing color intact, which matters for a destructive-flagged mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the scope stated first and the permission plus side-effect caveats packed into the second. Nothing can be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with an output schema and 80% schema coverage, the description covers permissions and the reindexing consequence, which are the highest-risk unknowns. It falls short only on update semantics (partial-update behavior, overwrite vs. merge), which an agent would still have to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already documents name, color, id, workspaceId and the action discriminator. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Create or update a workspace tag" gives a specific verb pair and resource, and the description's second clause scopes it to workspace-level tags. It does not, however, distinguish itself from the nearby delete_tag or set_document_tag siblings, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the access prerequisite ("Full workspace write access is required") but never says when to choose this over delete_tag or set_document_tag, nor when create vs. update applies beyond what the schema's `action` const already declares. Usage is only implied by the name and the first sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_document_tagADestructiveInspect
Add or remove an existing tag assignment on one document. Use batch_documents for the same tag action across multiple explicit IDs. Requires edit access to each document; action=remove preserves the tag itself.
| Name | Required | Description | Default |
|---|---|---|---|
| tagId | Yes | UUID returned by the corresponding list or read operation. | |
| action | Yes | Add or remove exactly one tag assignment. | |
| documentId | Yes | UUID returned by the corresponding list or read operation. | |
| workspaceId | No | Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and non-idempotency, so the description's key contribution is scoping the destruction: 'action=remove preserves the tag itself' reassures that only the assignment is removed, not the tag entity. It also discloses the edit-access requirement, valuable auth context absent from annotations, but does not address what happens if the assignment already exists despite idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, with the core operation front-loaded and the alternative routing and permission note following in priority order. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need no explanation, and the description covers the operation, the alternative, permissions, and the remove semantics. The one residual gap is behavior on a duplicate add, which matters given idempotentHint=false but is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description exceeds that by explaining the semantic effect of the action enum ('remove preserves the tag itself') and by qualifying tagId as an 'existing tag assignment.' It adds real meaning rather than restating field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair and resource ('Add or remove an existing tag assignment') with explicit cardinality scope ('on one document'), which cleanly separates it from batch_documents. An agent knows exactly what operation this performs 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the sibling alternative explicitly and gives the condition that selects it: 'Use batch_documents for the same tag action across multiple explicit IDs.' It also states the prerequisite ('Requires edit access to each document'), though it doesn't clarify when to use save_tag vs. this for a tag that doesn't yet exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v2.1.1- Changed
batch_documents6 fields changed- removed
Input schema / properties / documentIds / anyOfRemoved value: -[ - { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } -] - added
Input schema / properties / documentIds / descriptionAdded value: +"One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion." - added
Input schema / properties / documentIds / itemsAdded value: +{ + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Input schema / properties / documentIds / maxItemsAdded value: +25 - added
Input schema / properties / documentIds / minItemsAdded value: +1 - added
Input schema / properties / documentIds / typeAdded value: +"array"
- Changed
explore_graph5 fields changed- removed
Input schema / properties / limit / anyOfRemoved value: -[ - { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - } -] - added
Input schema / properties / limit / descriptionAdded value: +"Maximum results to return, up to 100." - added
Input schema / properties / limit / maximumAdded value: +100 - added
Input schema / properties / limit / minimumAdded value: +1 - added
Input schema / properties / limit / typeAdded value: +"integer"
- Changed
find_documents13 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "query" - ] - }, - { - "required": [ - "folder" - ] - }, - { - "required": [ - "tags" - ] - } - ] - } - } - ], - "properties": { - "folderId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "limit": { - "description": "Maximum documents per page, up to 1000.", - "maximum": 1000, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "list", - "description": "Select the list operation explicitly.", - "type": "string" - }, - "page": { - "description": "One-based page number; defaults to the API first page.", - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "tag": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "workspaceId": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "mode" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "tag" - ] - }, - { - "required": [ - "page" - ] - } - ] - } - } - ], - "properties": { - "folder": { - "description": "Optional folder UUID filter for search.", - "type": "string" - }, - "limit": { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "search", - "description": "Select the search operation explicitly.", - "type": "string" - }, - "query": { - "description": "Text to search in the original language.", - "minLength": 1, - "type": "string" - }, - "tags": { - "description": "Optional tag names; all supplied names must match.", - "items": { - "type": "string" - }, - "type": "array" - }, - "workspaceId": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "mode", - "query" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "query" + ] + }, + { + "required": [ + "includeDiagnostics" + ] + }, + { + "required": [ + "includeChunks" + ] + }, + { + "required": [ + "folder" + ] + }, + { + "required": [ + "tags" + ] + } + ] + } + } + ], + "properties": { + "categoryId": { + "description": "Filter by effective category UUID, including inherited folder placement.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "folderId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "limit": { + "description": "Maximum documents per page, up to 1000.", + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "list", + "description": "Select the list operation explicitly.", + "type": "string" + }, + "page": { + "description": "One-based page number; defaults to the API first page.", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "q": { + "description": "Literal case-insensitive title/content filter; does not invoke semantic search.", + "type": "string" + }, + "rootOnly": { + "description": "Return only documents without a folder; cannot combine with folderId.", + "type": "boolean" + }, + "sortBy": { + "description": "Stable server-side sort field; defaults to updatedAt.", + "enum": [ + "updatedAt", + "createdAt", + "title" + ], + "type": "string" + }, + "sortOrder": { + "description": "Sort direction, descending by default with an ID tie-breaker.", + "enum": [ + "asc", + "desc" + ], + "type": "string" + }, + "tag": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "tagIds": { + "description": "Filter by tag UUIDs; cannot combine with the legacy tag field.", + "items": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "tagMatch": { + "description": "Require all supplied tags by default, or any supplied tag.", + "enum": [ + "all", + "any" + ], + "type": "string" + }, + "updatedFrom": { + "description": "Inclusive updated timestamp lower bound, with timezone.", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "updatedTo": { + "description": "Exclusive updated timestamp upper bound, with timezone.", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + "visibility": { + "description": "Optional document visibility filter; never expands access.", + "enum": [ + "private", + "shared", + "public" + ], + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "visibility" + ] + }, + { + "required": [ + "rootOnly" + ] + }, + { + "required": [ + "tag" + ] + }, + { + "required": [ + "tagIds" + ] + }, + { + "required": [ + "tagMatch" + ] + }, + { + "required": [ + "q" + ] + }, + { + "required": [ + "updatedFrom" + ] + }, + { + "required": [ + "updatedTo" + ] + }, + { + "required": [ + "sortBy" + ] + }, + { + "required": [ + "sortOrder" + ] + }, + { + "required": [ + "page" + ] + } + ] + } + } + ], + "properties": { + "folder": { + "description": "Optional folder UUID filter for search.", + "type": "string" + }, + "includeChunks": { + "description": "Include matching text chunks only when requested.", + "type": "boolean" + }, + "includeDiagnostics": { + "description": "Include redacted diagnostic details; omitted by default.", + "type": "boolean" + }, + "limit": { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "search", + "description": "Select the search operation explicitly.", + "type": "string" + }, + "query": { + "description": "Text to search in the original language.", + "minLength": 1, + "type": "string" + }, + "tags": { + "description": "Optional tag names; all supplied names must match.", + "items": { + "type": "string" + }, + "type": "array" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "mode", + "query" + ], + "type": "object" + } +] - added
Input schema / properties / categoryIdAdded value: +{ + "description": "Filter by effective category UUID, including inherited folder placement.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - added
Input schema / properties / includeChunksAdded value: +{ + "description": "Include matching text chunks only when requested.", + "type": "boolean" +} - added
Input schema / properties / includeDiagnosticsAdded value: +{ + "description": "Include redacted diagnostic details; omitted by default.", + "type": "boolean" +} - added
Input schema / properties / qAdded value: +{ + "description": "Literal case-insensitive title/content filter; does not invoke semantic search.", + "type": "string" +} - added
Input schema / properties / rootOnlyAdded value: +{ + "description": "Return only documents without a folder; cannot combine with folderId.", + "type": "boolean" +} - added
Input schema / properties / sortByAdded value: +{ + "description": "Stable server-side sort field; defaults to updatedAt.", + "enum": [ + "updatedAt", + "createdAt", + "title" + ], + "type": "string" +} - added
Input schema / properties / sortOrderAdded value: +{ + "description": "Sort direction, descending by default with an ID tie-breaker.", + "enum": [ + "asc", + "desc" + ], + "type": "string" +} - added
Input schema / properties / tagIdsAdded value: +{ + "description": "Filter by tag UUIDs; cannot combine with the legacy tag field.", + "items": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "minItems": 1, + "type": "array" +} - added
Input schema / properties / tagMatchAdded value: +{ + "description": "Require all supplied tags by default, or any supplied tag.", + "enum": [ + "all", + "any" + ], + "type": "string" +} - added
Input schema / properties / updatedFromAdded value: +{ + "description": "Inclusive updated timestamp lower bound, with timezone.", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +} - added
Input schema / properties / updatedToAdded value: +{ + "description": "Exclusive updated timestamp upper bound, with timezone.", + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" +} - added
Input schema / properties / visibilityAdded value: +{ + "description": "Optional document visibility filter; never expands access.", + "enum": [ + "private", + "shared", + "public" + ], + "type": "string" +}
- Changed
read_document6 fields changed- removed
Input schema / properties / id / anyOfRemoved value: -[ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } -] - added
Input schema / properties / id / descriptionAdded value: +"UUID returned by the corresponding list or read operation." - added
Input schema / properties / id / formatAdded value: +"uuid" - added
Input schema / properties / id / patternAdded value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" - added
Input schema / properties / id / typeAdded value: +"string" - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "detail", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "categoryId": { - "type": [ - "string", - "null" - ] - }, - "content": { - "type": "string" - }, - "contentJson": {}, - "createdAt": { - "type": "string" - }, - "folderId": { - "type": [ - "string", - "null" - ] - }, - "folderName": { - "type": [ - "string", - "null" - ] - }, - "id": { - "type": "string" - }, - "metadata": {}, - "ownerId": { - "type": "string" - }, - "tags": { - "items": { - "additionalProperties": {}, - "properties": { - "color": { - "type": [ - "string", - "null" - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "updatedAt": { - "type": "string" - }, - "visibility": { - "enum": [ - "private", - "shared", - "public" - ], - "type": "string" - } - }, - "required": [ - "id", - "ownerId", - "folderId", - "categoryId", - "title", - "content", - "visibility", - "createdAt", - "updatedAt" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "markdown", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "filename": { - "type": "string" - }, - "markdown": { - "type": "string" - } - }, - "required": [ - "markdown" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "versions", - "type": "string" - }, - "result": { - "items": { - "additionalProperties": {}, - "properties": { - "content": { - "type": "string" - }, - "contentJson": {}, - "createdAt": { - "type": "string" - }, - "createdBy": { - "type": "string" - }, - "description": { - "type": [ - "string", - "null" - ] - }, - "documentId": { - "type": "string" - }, - "id": { - "type": "string" - }, - "isSnapshot": { - "type": "boolean" - }, - "label": { - "type": [ - "string", - "null" - ] - }, - "restoredFrom": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "id", - "documentId", - "content", - "createdBy", - "createdAt" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "detail", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "categoryId": { + "type": [ + "string", + "null" + ] + }, + "content": { + "type": "string" + }, + "contentJson": {}, + "createdAt": { + "type": "string" + }, + "folderId": { + "type": [ + "string", + "null" + ] + }, + "folderName": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "metadata": {}, + "ownerId": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "visibility": { + "enum": [ + "private", + "shared", + "public" + ], + "type": "string" + } + }, + "required": [ + "id", + "ownerId", + "folderId", + "categoryId", + "title", + "content", + "visibility", + "createdAt", + "updatedAt" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "markdown", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "filename": { + "type": "string" + }, + "id": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "title": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + }, + "workspaceId": { + "type": [ + "string", + "null" + ] + }, + "workspaceSlug": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "markdown" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "versions", + "type": "string" + }, + "result": { + "items": { + "additionalProperties": {}, + "properties": { + "content": { + "type": "string" + }, + "contentJson": {}, + "createdAt": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "documentId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isSnapshot": { + "type": "boolean" + }, + "label": { + "type": [ + "string", + "null" + ] + }, + "restoredFrom": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "documentId", + "content", + "createdBy", + "createdAt" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + } +]
- Changed
save_category5 fields changed- removed
Input schema / properties / name / anyOfRemoved value: -[ - { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - } -] - added
Input schema / properties / name / descriptionAdded value: +"Non-empty human-readable name or title." - added
Input schema / properties / name / maxLengthAdded value: +255 - added
Input schema / properties / name / minLengthAdded value: +1 - added
Input schema / properties / name / typeAdded value: +"string"
- Changed
save_document10 fields changed- changed
Input schema / properties / categoryId / anyOfPrevious value: -[ - { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - } -]New value: +[ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / categoryId / descriptionAdded value: +"Optional category UUID; null clears the explicit category." - removed
Input schema / properties / content / anyOfRemoved value: -[ - { - "description": "Markdown document content; an empty string clears the content on update.", - "type": "string" - }, - { - "description": "Markdown document content; an empty string clears the content on update.", - "type": "string" - } -] - added
Input schema / properties / content / descriptionAdded value: +"Markdown document content; an empty string clears the content on update." - added
Input schema / properties / content / typeAdded value: +"string" - removed
Input schema / properties / title / anyOfRemoved value: -[ - { - "description": "Document title, from 1 to 500 characters.", - "maxLength": 500, - "minLength": 1, - "type": "string" - }, - { - "description": "Document title, from 1 to 500 characters.", - "maxLength": 500, - "minLength": 1, - "type": "string" - } -] - added
Input schema / properties / title / descriptionAdded value: +"Document title, from 1 to 500 characters." - added
Input schema / properties / title / maxLengthAdded value: +500 - added
Input schema / properties / title / minLengthAdded value: +1 - added
Input schema / properties / title / typeAdded value: +"string"
- Changed
save_folder9 fields changed- changed
Input schema / properties / categoryId / anyOfPrevious value: -[ - { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - } -]New value: +[ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / categoryId / descriptionAdded value: +"Optional category UUID; null clears the explicit category." - removed
Input schema / properties / name / anyOfRemoved value: -[ - { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - } -] - added
Input schema / properties / name / descriptionAdded value: +"Non-empty human-readable name or title." - added
Input schema / properties / name / maxLengthAdded value: +255 - added
Input schema / properties / name / minLengthAdded value: +1 - added
Input schema / properties / name / typeAdded value: +"string" - changed
Input schema / properties / parentId / anyOfPrevious value: -[ - { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional parent folder UUID; null selects the root." - }, - { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional parent folder UUID; null selects the root." - } -]New value: +[ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } +] - added
Input schema / properties / parentId / descriptionAdded value: +"Optional parent folder UUID; null selects the root."
- Changed
save_tag9 fields changed- removed
Input schema / properties / color / anyOfRemoved value: -[ - { - "description": "Optional tag color, at most 20 characters.", - "maxLength": 20, - "type": "string" - }, - { - "description": "Optional tag color, at most 20 characters.", - "maxLength": 20, - "type": "string" - } -] - added
Input schema / properties / color / descriptionAdded value: +"Optional tag color, at most 20 characters." - added
Input schema / properties / color / maxLengthAdded value: +20 - added
Input schema / properties / color / typeAdded value: +"string" - removed
Input schema / properties / name / anyOfRemoved value: -[ - { - "description": "Non-empty human-readable name or title.", - "maxLength": 100, - "minLength": 1, - "type": "string" - }, - { - "description": "Non-empty human-readable name or title.", - "maxLength": 100, - "minLength": 1, - "type": "string" - } -] - added
Input schema / properties / name / descriptionAdded value: +"Non-empty human-readable name or title." - added
Input schema / properties / name / maxLengthAdded value: +100 - added
Input schema / properties / name / minLengthAdded value: +1 - added
Input schema / properties / name / typeAdded value: +"string"
22 tool updates
v2.0.4- Changed
batch_documents2 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "categoryId" - ] - }, - { - "required": [ - "tagId" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "move", - "description": "Move each document to the same folder.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - "folderId": { - "anyOf": [ - { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Destination folder UUID, or null for no folder." - } - }, - "required": [ - "documentIds", - "action", - "folderId" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "tagId" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "set_category", - "description": "Set one explicit category on every document.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Category UUID, or null to clear explicit category." - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action", - "categoryId" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "categoryId" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "add_tag", - "description": "Assign one existing tag to every document.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - "tagId": { - "description": "Existing tag UUID to assign to each document.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "documentIds", - "action", - "tagId" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "categoryId" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "remove_tag", - "description": "Remove one tag assignment from every document.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - "tagId": { - "description": "Existing tag UUID to unassign from each document.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "documentIds", - "action", - "tagId" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "categoryId" - ] - }, - { - "required": [ - "tagId" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "trash", - "description": "Move every document to trash without permanent deletion.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "categoryId" - ] - }, - { - "required": [ - "tagId" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "restore", - "description": "Restore every selected document from trash.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "categoryId" - ] - }, - { - "required": [ - "tagId" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "refresh_index", - "description": "Request explicit indexing retry for every document.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "move", + "description": "Move each document to the same folder.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "folderId": { + "anyOf": [ + { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Destination folder UUID, or null for no folder." + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action", + "folderId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "set_category", + "description": "Set one explicit category on every document.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Category UUID, or null to clear explicit category." + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action", + "categoryId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "add_tag", + "description": "Assign one existing tag to every document.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "tagId": { + "description": "Existing tag UUID to assign to each document.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action", + "tagId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "remove_tag", + "description": "Remove one tag assignment from every document.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "tagId": { + "description": "Existing tag UUID to unassign from each document.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action", + "tagId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "trash", + "description": "Move every document to trash without permanent deletion.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "restore", + "description": "Restore every selected document from trash.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "refresh_index", + "description": "Request explicit indexing retry for every document.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
create_snapshot7 fields changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - removed
Output schema / properties / description / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / description / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / label / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / label / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / restoredFrom / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / restoredFrom / typeAdded value: +[ + "string", + "null" +]
- Changed
delete_category1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
delete_document1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
delete_folder1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
delete_tag1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
explore_graph2 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "docIds" - ] - }, - { - "required": [ - "query" - ] - } - ] - } - } - ], - "properties": { - "documentId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "limit": { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "neighbors", - "description": "Select the neighbors operation explicitly.", - "type": "string" - } - }, - "required": [ - "mode", - "documentId" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "documentId" - ] - } - ] - } - } - ], - "properties": { - "docIds": { - "description": "One to 50 authorized seed document UUIDs.", - "items": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 50, - "minItems": 1, - "type": "array" - }, - "limit": { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "search", - "description": "Select the search operation explicitly.", - "type": "string" - }, - "query": { - "description": "Optional graph relevance query, at most 2000 characters.", - "maxLength": 2000, - "type": "string" - } - }, - "required": [ - "mode", - "docIds" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "docIds" + ] + }, + { + "required": [ + "query" + ] + } + ] + } + } + ], + "properties": { + "documentId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "limit": { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "neighbors", + "description": "Select the neighbors operation explicitly.", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "mode", + "documentId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "documentId" + ] + } + ] + } + } + ], + "properties": { + "docIds": { + "description": "One to 50 authorized seed document UUIDs.", + "items": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "limit": { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "search", + "description": "Select the search operation explicitly.", + "type": "string" + }, + "query": { + "description": "Optional graph relevance query, at most 2000 characters.", + "maxLength": 2000, + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "mode", + "docIds" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
find_documents3 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "query" - ] - }, - { - "required": [ - "folder" - ] - }, - { - "required": [ - "tags" - ] - } - ] - } - } - ], - "properties": { - "folderId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "limit": { - "description": "Maximum documents per page, up to 1000.", - "maximum": 1000, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "list", - "description": "Select the list operation explicitly.", - "type": "string" - }, - "page": { - "description": "One-based page number; defaults to the API first page.", - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "tag": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "mode" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "folderId" - ] - }, - { - "required": [ - "tag" - ] - }, - { - "required": [ - "page" - ] - } - ] - } - } - ], - "properties": { - "folder": { - "description": "Optional folder UUID filter for search.", - "type": "string" - }, - "limit": { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "search", - "description": "Select the search operation explicitly.", - "type": "string" - }, - "query": { - "description": "Text to search in the original language.", - "minLength": 1, - "type": "string" - }, - "tags": { - "description": "Optional tag names; all supplied names must match.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "mode", - "query" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "query" + ] + }, + { + "required": [ + "folder" + ] + }, + { + "required": [ + "tags" + ] + } + ] + } + } + ], + "properties": { + "folderId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "limit": { + "description": "Maximum documents per page, up to 1000.", + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "list", + "description": "Select the list operation explicitly.", + "type": "string" + }, + "page": { + "description": "One-based page number; defaults to the API first page.", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "tag": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "tag" + ] + }, + { + "required": [ + "page" + ] + } + ] + } + } + ], + "properties": { + "folder": { + "description": "Optional folder UUID filter for search.", + "type": "string" + }, + "limit": { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "search", + "description": "Select the search operation explicitly.", + "type": "string" + }, + "query": { + "description": "Text to search in the original language.", + "minLength": 1, + "type": "string" + }, + "tags": { + "description": "Optional tag names; all supplied names must match.", + "items": { + "type": "string" + }, + "type": "array" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "mode", + "query" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "list", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "categoryId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "categoryName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "folderId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "folderName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "type": "string" - }, - "tags": { - "items": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "title", - "content", - "folderId", - "folderName", - "categoryId", - "categoryName", - "createdAt", - "updatedAt", - "tags" - ], - "type": "object" - }, - "type": "array" - }, - "limit": { - "type": "number" - }, - "page": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "limit" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "search", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "diagnostics": { - "additionalProperties": {}, - "properties": { - "graphAttempted": { - "type": "boolean" - }, - "graphContribution": { - "type": "boolean" - }, - "graphFailed": { - "type": "boolean" - } - }, - "required": [ - "graphAttempted", - "graphFailed", - "graphContribution" - ], - "type": "object" - }, - "items": { - "items": { - "additionalProperties": {}, - "properties": { - "chunks": { - "items": { - "additionalProperties": {}, - "properties": { - "charEnd": { - "type": "number" - }, - "charStart": { - "type": "number" - }, - "chunkIndex": { - "type": "number" - }, - "chunkText": { - "type": "string" - }, - "score": { - "type": "number" - } - }, - "required": [ - "chunkIndex", - "chunkText", - "charStart", - "charEnd", - "score" - ], - "type": "object" - }, - "type": "array" - }, - "created_at": { - "type": "string" - }, - "folder_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "folder_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "type": "string" - }, - "score": { - "type": "number" - }, - "snippet": { - "type": "string" - }, - "tags": { - "items": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "updated_at": { - "type": "string" - } - }, - "required": [ - "id", - "title", - "snippet", - "score", - "folder_id", - "folder_name", - "created_at", - "updated_at" - ], - "type": "object" - }, - "type": "array" - }, - "limit": { - "type": "number" - }, - "page": { - "type": "number" - }, - "total": { - "type": "number" - } - }, - "required": [ - "items", - "total", - "page", - "limit" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "list", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "categoryId": { + "type": [ + "string", + "null" + ] + }, + "categoryName": { + "type": [ + "string", + "null" + ] + }, + "content": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "folderId": { + "type": [ + "string", + "null" + ] + }, + "folderName": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "content", + "folderId", + "folderName", + "categoryId", + "categoryName", + "createdAt", + "updatedAt", + "tags" + ], + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "number" + }, + "page": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "items", + "total", + "page", + "limit" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "search", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "diagnostics": { + "additionalProperties": {}, + "properties": { + "graphAttempted": { + "type": "boolean" + }, + "graphContribution": { + "type": "boolean" + }, + "graphFailed": { + "type": "boolean" + } + }, + "required": [ + "graphAttempted", + "graphFailed", + "graphContribution" + ], + "type": "object" + }, + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "chunks": { + "items": { + "additionalProperties": {}, + "properties": { + "charEnd": { + "type": "number" + }, + "charStart": { + "type": "number" + }, + "chunkIndex": { + "type": "number" + }, + "chunkText": { + "type": "string" + }, + "score": { + "type": "number" + } + }, + "required": [ + "chunkIndex", + "chunkText", + "charStart", + "charEnd", + "score" + ], + "type": "object" + }, + "type": "array" + }, + "created_at": { + "type": "string" + }, + "folder_id": { + "type": [ + "string", + "null" + ] + }, + "folder_name": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "score": { + "type": "number" + }, + "snippet": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "snippet", + "score", + "folder_id", + "folder_name", + "created_at", + "updated_at" + ], + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "number" + }, + "page": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "items", + "total", + "page", + "limit" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "type": "string" + }, + "scopedResults": { + "items": { + "additionalProperties": false, + "properties": { + "categoryId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "list", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "categoryId": { + "type": [ + "string", + "null" + ] + }, + "categoryName": { + "type": [ + "string", + "null" + ] + }, + "content": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "folderId": { + "type": [ + "string", + "null" + ] + }, + "folderName": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "content", + "folderId", + "folderName", + "categoryId", + "categoryName", + "createdAt", + "updatedAt", + "tags" + ], + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "number" + }, + "page": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "items", + "total", + "page", + "limit" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "search", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "diagnostics": { + "additionalProperties": {}, + "properties": { + "graphAttempted": { + "type": "boolean" + }, + "graphContribution": { + "type": "boolean" + }, + "graphFailed": { + "type": "boolean" + } + }, + "required": [ + "graphAttempted", + "graphFailed", + "graphContribution" + ], + "type": "object" + }, + "items": { + "items": { + "additionalProperties": {}, + "properties": { + "chunks": { + "items": { + "additionalProperties": {}, + "properties": { + "charEnd": { + "type": "number" + }, + "charStart": { + "type": "number" + }, + "chunkIndex": { + "type": "number" + }, + "chunkText": { + "type": "string" + }, + "score": { + "type": "number" + } + }, + "required": [ + "chunkIndex", + "chunkText", + "charStart", + "charEnd", + "score" + ], + "type": "object" + }, + "type": "array" + }, + "created_at": { + "type": "string" + }, + "folder_id": { + "type": [ + "string", + "null" + ] + }, + "folder_name": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "score": { + "type": "number" + }, + "snippet": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updated_at": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "snippet", + "score", + "folder_id", + "folder_name", + "created_at", + "updated_at" + ], + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "number" + }, + "page": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "items", + "total", + "page", + "limit" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + } + ] + }, + "workspace": { + "additionalProperties": false, + "properties": { + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "slug" + ], + "type": "object" + } + }, + "required": [ + "workspace", + "categoryId", + "data" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "scopedResults" + ], + "type": "object" + } +]
- Changed
get_document_index_status11 fields changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - removed
Output schema / properties / activeGenerationId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / activeGenerationId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / embeddingErrorCode / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / embeddingErrorCode / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / embeddingProfile / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / embeddingProfile / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / embeddingUpdatedAt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / embeddingUpdatedAt / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / pendingGenerationId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / pendingGenerationId / typeAdded value: +[ + "string", + "null" +]
- Changed
get_workspace_item16 fields changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - removed
Output schema / $defs / __schema0 / properties / categoryId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / categoryId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryName / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryName / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / folderId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / folderId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / folderName / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / folderName / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / parentId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / parentId / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "folder", - "type": "string" - }, - "result": { - "$ref": "#/$defs/__schema0" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "category", - "type": "string" - }, - "result": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "apiMode": { - "enum": [ - "unavailable", - "global", - "category" - ], - "type": "string" - }, - "apiPermissionEdit": { - "type": "boolean" - }, - "apiPermissionRead": { - "type": "boolean" - }, - "apiPermissionWrite": { - "type": "boolean" - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "folderCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "order": { - "type": "number" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "order", - "createdAt", - "updatedAt", - "apiMode", - "apiPermissionRead", - "apiPermissionEdit", - "apiPermissionWrite" - ], - "type": "object" - }, - { - "additionalProperties": {}, - "properties": { - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "folderCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "order": { - "type": "number" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "order", - "createdAt", - "updatedAt" - ], - "type": "object" - } - ] - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "tag", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "folder", + "type": "string" + }, + "result": { + "$ref": "#/$defs/__schema0" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "category", + "type": "string" + }, + "result": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "apiMode": { + "enum": [ + "unavailable", + "global", + "category" + ], + "type": "string" + }, + "apiPermissionEdit": { + "type": "boolean" + }, + "apiPermissionRead": { + "type": "boolean" + }, + "apiPermissionWrite": { + "type": "boolean" + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "folderCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "number" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "order", + "createdAt", + "updatedAt", + "apiMode", + "apiPermissionRead", + "apiPermissionEdit", + "apiPermissionWrite" + ], + "type": "object" + }, + { + "additionalProperties": {}, + "properties": { + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "folderCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "number" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "order", + "createdAt", + "updatedAt" + ], + "type": "object" + } + ] + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "tag", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + } +]
- Changed
list_trash5 fields changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - removed
Output schema / additionalPropertiesRemoved value: -{} - added
Output schema / anyOfAdded value: +[ + { + "additionalProperties": {}, + "properties": { + "documents": { + "items": { + "additionalProperties": {}, + "properties": { + "deletedAt": { + "type": "string" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "purgeAfter": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "deletedAt", + "purgeAfter" + ], + "type": "object" + }, + "type": "array" + }, + "folders": { + "items": {}, + "type": "array" + } + }, + "required": [ + "documents", + "folders" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "type": "string" + }, + "scopedResults": { + "items": { + "additionalProperties": false, + "properties": { + "categoryId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "data": { + "additionalProperties": {}, + "properties": { + "documents": { + "items": { + "additionalProperties": {}, + "properties": { + "deletedAt": { + "type": "string" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "purgeAfter": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": "string" + } + }, + "required": [ + "id", + "title", + "deletedAt", + "purgeAfter" + ], + "type": "object" + }, + "type": "array" + }, + "folders": { + "items": {}, + "type": "array" + } + }, + "required": [ + "documents", + "folders" + ], + "type": "object" + }, + "workspace": { + "additionalProperties": false, + "properties": { + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "slug" + ], + "type": "object" + } + }, + "required": [ + "workspace", + "categoryId", + "data" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "scopedResults" + ], + "type": "object" + } +] - removed
Output schema / propertiesRemoved value: -{ - "documents": { - "items": { - "additionalProperties": {}, - "properties": { - "deletedAt": { - "type": "string" - }, - "id": { - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "purgeAfter": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "title": { - "type": "string" - } - }, - "required": [ - "id", - "title", - "deletedAt", - "purgeAfter" - ], - "type": "object" - }, - "type": "array" - }, - "folders": { - "items": {}, - "type": "array" - } -} - removed
Output schema / requiredRemoved value: -[ - "documents", - "folders" -]
- Changed
list_workspace_structure18 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "properties": { - "kind": { - "const": "folders", - "description": "Select the folders operation explicitly.", - "type": "string" - }, - "parentId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "parentId" - ] - } - ] - } - } - ], - "properties": { - "kind": { - "const": "categories", - "description": "Select the categories operation explicitly.", - "type": "string" - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "parentId" - ] - } - ] - } - } - ], - "properties": { - "kind": { - "const": "tags", - "description": "Select the tags operation explicitly.", - "type": "string" - } - }, - "required": [ - "kind" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "parentId" + ] + } + ] + } + } + ], + "properties": { + "kind": { + "const": "workspaces", + "description": "Discover every workspace granted to this connection, including empty ones.", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "properties": { + "kind": { + "const": "folders", + "description": "Select the folders operation explicitly.", + "type": "string" + }, + "parentId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "parentId" + ] + } + ] + } + } + ], + "properties": { + "kind": { + "const": "categories", + "description": "Select the categories operation explicitly.", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "parentId" + ] + } + ] + } + } + ], + "properties": { + "kind": { + "const": "tags", + "description": "Select the tags operation explicitly.", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } +] - changed
Input schema / properties / kind / anyOfPrevious value: -[ - { - "const": "folders", - "description": "Select the folders operation explicitly.", - "type": "string" - }, - { - "const": "categories", - "description": "Select the categories operation explicitly.", - "type": "string" - }, - { - "const": "tags", - "description": "Select the tags operation explicitly.", - "type": "string" - } -]New value: +[ + { + "const": "workspaces", + "description": "Discover every workspace granted to this connection, including empty ones.", + "type": "string" + }, + { + "const": "folders", + "description": "Select the folders operation explicitly.", + "type": "string" + }, + { + "const": "categories", + "description": "Select the categories operation explicitly.", + "type": "string" + }, + { + "const": "tags", + "description": "Select the tags operation explicitly.", + "type": "string" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - removed
Output schema / $defs / __schema0 / properties / categoryId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / categoryId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryName / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryName / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / folderId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / folderId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / folderName / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / folderName / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / parentId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / parentId / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "folders", - "type": "string" - }, - "result": { - "items": { - "$ref": "#/$defs/__schema0" - }, - "type": "array" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "categories", - "type": "string" - }, - "result": { - "items": { - "anyOf": [ - { - "additionalProperties": {}, - "properties": { - "apiMode": { - "enum": [ - "unavailable", - "global", - "category" - ], - "type": "string" - }, - "apiPermissionEdit": { - "type": "boolean" - }, - "apiPermissionRead": { - "type": "boolean" - }, - "apiPermissionWrite": { - "type": "boolean" - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "folderCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "order": { - "type": "number" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "order", - "createdAt", - "updatedAt", - "apiMode", - "apiPermissionRead", - "apiPermissionEdit", - "apiPermissionWrite" - ], - "type": "object" - }, - { - "additionalProperties": {}, - "properties": { - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "folderCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "order": { - "type": "number" - }, - "updatedAt": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "order", - "createdAt", - "updatedAt" - ], - "type": "object" - } - ] - }, - "type": "array" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "tags", - "type": "string" - }, - "result": { - "items": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "workspaces", + "type": "string" + }, + "result": { + "items": { + "additionalProperties": false, + "properties": { + "categoryIds": { + "items": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "type": "array" + }, + "entireWorkspace": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "slug", + "entireWorkspace", + "categoryIds" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "folders", + "type": "string" + }, + "result": { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "categories", + "type": "string" + }, + "result": { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "apiMode": { + "enum": [ + "unavailable", + "global", + "category" + ], + "type": "string" + }, + "apiPermissionEdit": { + "type": "boolean" + }, + "apiPermissionRead": { + "type": "boolean" + }, + "apiPermissionWrite": { + "type": "boolean" + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "folderCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "number" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "order", + "createdAt", + "updatedAt", + "apiMode", + "apiPermissionRead", + "apiPermissionEdit", + "apiPermissionWrite" + ], + "type": "object" + }, + { + "additionalProperties": {}, + "properties": { + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "folderCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "number" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "order", + "createdAt", + "updatedAt" + ], + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "tags", + "type": "string" + }, + "result": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "type": "string" + }, + "scopedResults": { + "items": { + "additionalProperties": false, + "properties": { + "categoryId": { + "anyOf": [ + { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "data": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "workspaces", + "type": "string" + }, + "result": { + "items": { + "additionalProperties": false, + "properties": { + "categoryIds": { + "items": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "type": "array" + }, + "entireWorkspace": { + "type": "boolean" + }, + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "slug", + "entireWorkspace", + "categoryIds" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "folders", + "type": "string" + }, + "result": { + "items": { + "$ref": "#/$defs/__schema0" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "categories", + "type": "string" + }, + "result": { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "apiMode": { + "enum": [ + "unavailable", + "global", + "category" + ], + "type": "string" + }, + "apiPermissionEdit": { + "type": "boolean" + }, + "apiPermissionRead": { + "type": "boolean" + }, + "apiPermissionWrite": { + "type": "boolean" + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "folderCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "number" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "order", + "createdAt", + "updatedAt", + "apiMode", + "apiPermissionRead", + "apiPermissionEdit", + "apiPermissionWrite" + ], + "type": "object" + }, + { + "additionalProperties": {}, + "properties": { + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "folderCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "order": { + "type": "number" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "order", + "createdAt", + "updatedAt" + ], + "type": "object" + } + ] + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "tags", + "type": "string" + }, + "result": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + } + ] + }, + "workspace": { + "additionalProperties": false, + "properties": { + "id": { + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "slug" + ], + "type": "object" + } + }, + "required": [ + "workspace", + "categoryId", + "data" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "scopedResults" + ], + "type": "object" + } +]
- Changed
permanently_delete_document1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
read_document3 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "onlySnapshots" - ] - } - ] - } - } - ], - "properties": { - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "view": { - "const": "detail", - "description": "Select the detail operation explicitly.", - "type": "string" - } - }, - "required": [ - "view", - "id" - ], - "type": "object" - }, - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "onlySnapshots" - ] - } - ] - } - } - ], - "properties": { - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "view": { - "const": "markdown", - "description": "Select the markdown operation explicitly.", - "type": "string" - } - }, - "required": [ - "view", - "id" - ], - "type": "object" - }, - { - "properties": { - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "onlySnapshots": { - "description": "When true, return only named snapshots.", - "type": "boolean" - }, - "view": { - "const": "versions", - "description": "Select the versions operation explicitly.", - "type": "string" - } - }, - "required": [ - "view", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "onlySnapshots" + ] + } + ] + } + } + ], + "properties": { + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "view": { + "const": "detail", + "description": "Select the detail operation explicitly.", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "view", + "id" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "onlySnapshots" + ] + } + ] + } + } + ], + "properties": { + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "view": { + "const": "markdown", + "description": "Select the markdown operation explicitly.", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "view", + "id" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "onlySnapshots": { + "description": "When true, return only named snapshots.", + "type": "boolean" + }, + "view": { + "const": "versions", + "description": "Select the versions operation explicitly.", + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "view", + "id" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "detail", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "categoryId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content": { - "type": "string" - }, - "contentJson": {}, - "createdAt": { - "type": "string" - }, - "folderId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "folderName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "type": "string" - }, - "metadata": {}, - "ownerId": { - "type": "string" - }, - "tags": { - "items": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "updatedAt": { - "type": "string" - }, - "visibility": { - "enum": [ - "private", - "shared", - "public" - ], - "type": "string" - } - }, - "required": [ - "id", - "ownerId", - "folderId", - "categoryId", - "title", - "content", - "visibility", - "createdAt", - "updatedAt" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "markdown", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "filename": { - "type": "string" - }, - "markdown": { - "type": "string" - } - }, - "required": [ - "markdown" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "versions", - "type": "string" - }, - "result": { - "items": { - "additionalProperties": {}, - "properties": { - "content": { - "type": "string" - }, - "contentJson": {}, - "createdAt": { - "type": "string" - }, - "createdBy": { - "type": "string" - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "documentId": { - "type": "string" - }, - "id": { - "type": "string" - }, - "isSnapshot": { - "type": "boolean" - }, - "label": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "restoredFrom": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "documentId", - "content", - "createdBy", - "createdAt" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "detail", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "categoryId": { + "type": [ + "string", + "null" + ] + }, + "content": { + "type": "string" + }, + "contentJson": {}, + "createdAt": { + "type": "string" + }, + "folderId": { + "type": [ + "string", + "null" + ] + }, + "folderName": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "metadata": {}, + "ownerId": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "visibility": { + "enum": [ + "private", + "shared", + "public" + ], + "type": "string" + } + }, + "required": [ + "id", + "ownerId", + "folderId", + "categoryId", + "title", + "content", + "visibility", + "createdAt", + "updatedAt" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "markdown", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "filename": { + "type": "string" + }, + "markdown": { + "type": "string" + } + }, + "required": [ + "markdown" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "versions", + "type": "string" + }, + "result": { + "items": { + "additionalProperties": {}, + "properties": { + "content": { + "type": "string" + }, + "contentJson": {}, + "createdAt": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "documentId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "isSnapshot": { + "type": "boolean" + }, + "label": { + "type": [ + "string", + "null" + ] + }, + "restoredFrom": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "documentId", + "content", + "createdBy", + "createdAt" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + } +]
- Changed
refresh_document_index1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
restore_document_version9 fields changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - removed
Output schema / properties / categoryId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / categoryId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / folderId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / folderId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / folderName / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / folderName / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / tags / items / properties / color / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / tags / items / properties / color / typeAdded value: +[ + "string", + "null" +]
- Changed
restore_trashed_document1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
save_category2 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "id" - ] - }, - { - "required": [ - "order" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "name" - ], - "type": "object" - }, - { - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "order": { - "description": "New non-negative display order.", - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "order" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "order": { + "description": "New non-negative display order.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
- Changed
save_document3 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "id" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "content": { - "description": "Markdown document content; an empty string clears the content on update.", - "type": "string" - }, - "folderId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "title": { - "description": "Document title, from 1 to 500 characters.", - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "content": { - "description": "Markdown document content; an empty string clears the content on update.", - "type": "string" - }, - "folderId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional folder UUID; null clears the placement on update." - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "title": { - "description": "Document title, from 1 to 500 characters.", - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "content": { + "description": "Markdown document content; an empty string clears the content on update.", + "type": "string" + }, + "folderId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "title": { + "description": "Document title, from 1 to 500 characters.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "content": { + "description": "Markdown document content; an empty string clears the content on update.", + "type": "string" + }, + "folderId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional folder UUID; null clears the placement on update." + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "title": { + "description": "Document title, from 1 to 500 characters.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "create", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "categoryId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content": { - "type": "string" - }, - "contentJson": {}, - "createdAt": { - "type": "string" - }, - "folderId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "folderName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "type": "string" - }, - "metadata": {}, - "ownerId": { - "type": "string" - }, - "tags": { - "items": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "updatedAt": { - "type": "string" - }, - "visibility": { - "enum": [ - "private", - "shared", - "public" - ], - "type": "string" - } - }, - "required": [ - "id", - "ownerId", - "folderId", - "categoryId", - "title", - "content", - "visibility", - "createdAt", - "updatedAt" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "update", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "categoryId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "content": { - "type": "string" - }, - "contentJson": {}, - "createdAt": { - "type": "string" - }, - "folderId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "folderName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "type": "string" - }, - "metadata": {}, - "ownerId": { - "type": "string" - }, - "tags": { - "items": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - }, - "type": "array" - }, - "title": { - "type": "string" - }, - "updatedAt": { - "type": "string" - }, - "visibility": { - "enum": [ - "private", - "shared", - "public" - ], - "type": "string" - } - }, - "required": [ - "id", - "ownerId", - "folderId", - "categoryId", - "title", - "content", - "visibility", - "createdAt", - "updatedAt" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "create", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "categoryId": { + "type": [ + "string", + "null" + ] + }, + "content": { + "type": "string" + }, + "contentJson": {}, + "createdAt": { + "type": "string" + }, + "folderId": { + "type": [ + "string", + "null" + ] + }, + "folderName": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "metadata": {}, + "ownerId": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "visibility": { + "enum": [ + "private", + "shared", + "public" + ], + "type": "string" + } + }, + "required": [ + "id", + "ownerId", + "folderId", + "categoryId", + "title", + "content", + "visibility", + "createdAt", + "updatedAt" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "update", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "categoryId": { + "type": [ + "string", + "null" + ] + }, + "content": { + "type": "string" + }, + "contentJson": {}, + "createdAt": { + "type": "string" + }, + "folderId": { + "type": [ + "string", + "null" + ] + }, + "folderName": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": "string" + }, + "metadata": {}, + "ownerId": { + "type": "string" + }, + "tags": { + "items": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "updatedAt": { + "type": "string" + }, + "visibility": { + "enum": [ + "private", + "shared", + "public" + ], + "type": "string" + } + }, + "required": [ + "id", + "ownerId", + "folderId", + "categoryId", + "title", + "content", + "visibility", + "createdAt", + "updatedAt" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + } +]
- Changed
save_folder16 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "id" - ] - }, - { - "required": [ - "order" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "parentId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional parent folder UUID; null selects the root." - } - }, - "required": [ - "action", - "name" - ], - "type": "object" - }, - { - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "order": { - "description": "New non-negative display order.", - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "parentId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional parent folder UUID; null selects the root." - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "order" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "parentId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional parent folder UUID; null selects the root." + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "order": { + "description": "New non-negative display order.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "parentId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional parent folder UUID; null selects the root." + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - removed
Output schema / $defs / __schema0 / properties / categoryId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / categoryId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryName / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / categoryName / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / folderId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / folderId / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / folderName / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / folderName / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / documents / items / properties / tags / items / properties / color / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / $defs / __schema0 / properties / parentId / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / $defs / __schema0 / properties / parentId / typeAdded value: +[ + "string", + "null" +]
- Changed
save_tag3 fields changed- changed
Input schema / oneOfPrevious value: -[ - { - "allOf": [ - { - "not": { - "anyOf": [ - { - "required": [ - "id" - ] - } - ] - } - } - ], - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "color": { - "description": "Optional tag color, at most 20 characters.", - "maxLength": 20, - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "name" - ], - "type": "object" - }, - { - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "color": { - "description": "Optional tag color, at most 20 characters.", - "maxLength": 20, - "type": "string" - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "color": { + "description": "Optional tag color, at most 20 characters.", + "maxLength": 20, + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "color": { + "description": "Optional tag color, at most 20 characters.", + "maxLength": 20, + "type": "string" + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + "workspaceId": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +} - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "create", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "operation": { - "const": "update", - "type": "string" - }, - "result": { - "additionalProperties": {}, - "properties": { - "color": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "createdAt": { - "type": "string" - }, - "documentCount": { - "type": "number" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "color" - ], - "type": "object" - } - }, - "required": [ - "operation", - "result" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "create", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "operation": { + "const": "update", + "type": "string" + }, + "result": { + "additionalProperties": {}, + "properties": { + "color": { + "type": [ + "string", + "null" + ] + }, + "createdAt": { + "type": "string" + }, + "documentCount": { + "type": "number" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "name", + "color" + ], + "type": "object" + } + }, + "required": [ + "operation", + "result" + ], + "type": "object" + } +]
- Changed
set_document_tag1 field changed- added
Input schema / properties / workspaceIdAdded value: +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "Workspace UUID from list_workspace_structure(kind=workspaces). Required for ambiguous creates and structure changes; omit to search all granted scopes.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" +}
9 tool updates
v1.0.3- Changed
batch_documents3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "action": { - "const": "move", - "description": "Move each document to the same folder.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - "folderId": { - "anyOf": [ - { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Destination folder UUID, or null for no folder." - } - }, - "required": [ - "documentIds", - "action", - "folderId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "set_category", - "description": "Set one explicit category on every document.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Category UUID, or null to clear explicit category." - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action", - "categoryId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "add_tag", - "description": "Assign one existing tag to every document.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - "tagId": { - "description": "Existing tag UUID to assign to each document.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "documentIds", - "action", - "tagId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "remove_tag", - "description": "Remove one tag assignment from every document.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - }, - "tagId": { - "description": "Existing tag UUID to unassign from each document.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "documentIds", - "action", - "tagId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "trash", - "description": "Move every document to trash without permanent deletion.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "restore", - "description": "Restore every selected document from trash.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "refresh_index", - "description": "Request explicit indexing retry for every document.", - "type": "string" - }, - "documentIds": { - "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", - "items": { - "description": "UUID of an item visible to the active API key.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 25, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "documentIds", - "action" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "move", + "description": "Move each document to the same folder.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "folderId": { + "anyOf": [ + { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Destination folder UUID, or null for no folder." + } + }, + "required": [ + "documentIds", + "action", + "folderId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "set_category", + "description": "Set one explicit category on every document.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Category UUID, or null to clear explicit category." + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "documentIds", + "action", + "categoryId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "add_tag", + "description": "Assign one existing tag to every document.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "tagId": { + "description": "Existing tag UUID to assign to each document.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action", + "tagId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "remove_tag", + "description": "Remove one tag assignment from every document.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + "tagId": { + "description": "Existing tag UUID to unassign from each document.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "documentIds", + "action", + "tagId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "trash", + "description": "Move every document to trash without permanent deletion.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "documentIds", + "action" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "restore", + "description": "Restore every selected document from trash.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "documentIds", + "action" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "categoryId" + ] + }, + { + "required": [ + "tagId" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "refresh_index", + "description": "Request explicit indexing retry for every document.", + "type": "string" + }, + "documentIds": { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + } + }, + "required": [ + "documentIds", + "action" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "action": { + "anyOf": [ + { + "const": "move", + "description": "Move each document to the same folder.", + "type": "string" + }, + { + "const": "set_category", + "description": "Set one explicit category on every document.", + "type": "string" + }, + { + "const": "add_tag", + "description": "Assign one existing tag to every document.", + "type": "string" + }, + { + "const": "remove_tag", + "description": "Remove one tag assignment from every document.", + "type": "string" + }, + { + "const": "trash", + "description": "Move every document to trash without permanent deletion.", + "type": "string" + }, + { + "const": "restore", + "description": "Restore every selected document from trash.", + "type": "string" + }, + { + "const": "refresh_index", + "description": "Request explicit indexing retry for every document.", + "type": "string" + } + ] + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Category UUID, or null to clear explicit category." + }, + "documentIds": { + "anyOf": [ + { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + }, + { + "description": "One to 25 distinct document UUIDs, explicitly selected by the user; no search expansion.", + "items": { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 25, + "minItems": 1, + "type": "array" + } + ] + }, + "folderId": { + "anyOf": [ + { + "description": "UUID of an item visible to the active API key.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Destination folder UUID, or null for no folder." + }, + "tagId": { + "anyOf": [ + { + "description": "Existing tag UUID to assign to each document.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "description": "Existing tag UUID to unassign from each document.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + ] + } +}
- Changed
explore_graph3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "documentId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "limit": { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "neighbors", - "description": "Select the neighbors operation explicitly.", - "type": "string" - } - }, - "required": [ - "mode", - "documentId" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "docIds": { - "description": "One to 50 authorized seed document UUIDs.", - "items": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "maxItems": 50, - "minItems": 1, - "type": "array" - }, - "limit": { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "search", - "description": "Select the search operation explicitly.", - "type": "string" - }, - "query": { - "description": "Optional graph relevance query, at most 2000 characters.", - "maxLength": 2000, - "type": "string" - } - }, - "required": [ - "mode", - "docIds" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "docIds" + ] + }, + { + "required": [ + "query" + ] + } + ] + } + } + ], + "properties": { + "documentId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "limit": { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "neighbors", + "description": "Select the neighbors operation explicitly.", + "type": "string" + } + }, + "required": [ + "mode", + "documentId" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "documentId" + ] + } + ] + } + } + ], + "properties": { + "docIds": { + "description": "One to 50 authorized seed document UUIDs.", + "items": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "limit": { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "search", + "description": "Select the search operation explicitly.", + "type": "string" + }, + "query": { + "description": "Optional graph relevance query, at most 2000 characters.", + "maxLength": 2000, + "type": "string" + } + }, + "required": [ + "mode", + "docIds" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "docIds": { + "description": "One to 50 authorized seed document UUIDs.", + "items": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "maxItems": 50, + "minItems": 1, + "type": "array" + }, + "documentId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "limit": { + "anyOf": [ + { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + ] + }, + "mode": { + "anyOf": [ + { + "const": "neighbors", + "description": "Select the neighbors operation explicitly.", + "type": "string" + }, + { + "const": "search", + "description": "Select the search operation explicitly.", + "type": "string" + } + ] + }, + "query": { + "description": "Optional graph relevance query, at most 2000 characters.", + "maxLength": 2000, + "type": "string" + } +}
- Changed
find_documents3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "folderId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "limit": { - "description": "Maximum documents per page, up to 1000.", - "maximum": 1000, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "list", - "description": "Select the list operation explicitly.", - "type": "string" - }, - "page": { - "description": "One-based page number; defaults to the API first page.", - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer" - }, - "tag": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "mode" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "folder": { - "description": "Optional folder UUID filter for search.", - "type": "string" - }, - "limit": { - "description": "Maximum results to return, up to 100.", - "maximum": 100, - "minimum": 1, - "type": "integer" - }, - "mode": { - "const": "search", - "description": "Select the search operation explicitly.", - "type": "string" - }, - "query": { - "description": "Text to search in the original language.", - "minLength": 1, - "type": "string" - }, - "tags": { - "description": "Optional tag names; all supplied names must match.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "mode", - "query" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "query" + ] + }, + { + "required": [ + "folder" + ] + }, + { + "required": [ + "tags" + ] + } + ] + } + } + ], + "properties": { + "folderId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "limit": { + "description": "Maximum documents per page, up to 1000.", + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "list", + "description": "Select the list operation explicitly.", + "type": "string" + }, + "page": { + "description": "One-based page number; defaults to the API first page.", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "tag": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "folderId" + ] + }, + { + "required": [ + "tag" + ] + }, + { + "required": [ + "page" + ] + } + ] + } + } + ], + "properties": { + "folder": { + "description": "Optional folder UUID filter for search.", + "type": "string" + }, + "limit": { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + }, + "mode": { + "const": "search", + "description": "Select the search operation explicitly.", + "type": "string" + }, + "query": { + "description": "Text to search in the original language.", + "minLength": 1, + "type": "string" + }, + "tags": { + "description": "Optional tag names; all supplied names must match.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "mode", + "query" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "folder": { + "description": "Optional folder UUID filter for search.", + "type": "string" + }, + "folderId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "limit": { + "anyOf": [ + { + "description": "Maximum documents per page, up to 1000.", + "maximum": 1000, + "minimum": 1, + "type": "integer" + }, + { + "description": "Maximum results to return, up to 100.", + "maximum": 100, + "minimum": 1, + "type": "integer" + } + ] + }, + "mode": { + "anyOf": [ + { + "const": "list", + "description": "Select the list operation explicitly.", + "type": "string" + }, + { + "const": "search", + "description": "Select the search operation explicitly.", + "type": "string" + } + ] + }, + "page": { + "description": "One-based page number; defaults to the API first page.", + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer" + }, + "query": { + "description": "Text to search in the original language.", + "minLength": 1, + "type": "string" + }, + "tag": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "tags": { + "description": "Optional tag names; all supplied names must match.", + "items": { + "type": "string" + }, + "type": "array" + } +}
- Changed
list_workspace_structure3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "folders", - "description": "Select the folders operation explicitly.", - "type": "string" - }, - "parentId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "categories", - "description": "Select the categories operation explicitly.", - "type": "string" - } - }, - "required": [ - "kind" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "tags", - "description": "Select the tags operation explicitly.", - "type": "string" - } - }, - "required": [ - "kind" - ], - "type": "object" - } -]New value: +[ + { + "properties": { + "kind": { + "const": "folders", + "description": "Select the folders operation explicitly.", + "type": "string" + }, + "parentId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "parentId" + ] + } + ] + } + } + ], + "properties": { + "kind": { + "const": "categories", + "description": "Select the categories operation explicitly.", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "parentId" + ] + } + ] + } + } + ], + "properties": { + "kind": { + "const": "tags", + "description": "Select the tags operation explicitly.", + "type": "string" + } + }, + "required": [ + "kind" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "kind": { + "anyOf": [ + { + "const": "folders", + "description": "Select the folders operation explicitly.", + "type": "string" + }, + { + "const": "categories", + "description": "Select the categories operation explicitly.", + "type": "string" + }, + { + "const": "tags", + "description": "Select the tags operation explicitly.", + "type": "string" + } + ] + }, + "parentId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } +}
- Changed
read_document3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "view": { - "const": "detail", - "description": "Select the detail operation explicitly.", - "type": "string" - } - }, - "required": [ - "view", - "id" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "view": { - "const": "markdown", - "description": "Select the markdown operation explicitly.", - "type": "string" - } - }, - "required": [ - "view", - "id" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "onlySnapshots": { - "description": "When true, return only named snapshots.", - "type": "boolean" - }, - "view": { - "const": "versions", - "description": "Select the versions operation explicitly.", - "type": "string" - } - }, - "required": [ - "view", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "onlySnapshots" + ] + } + ] + } + } + ], + "properties": { + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "view": { + "const": "detail", + "description": "Select the detail operation explicitly.", + "type": "string" + } + }, + "required": [ + "view", + "id" + ], + "type": "object" + }, + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "onlySnapshots" + ] + } + ] + } + } + ], + "properties": { + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "view": { + "const": "markdown", + "description": "Select the markdown operation explicitly.", + "type": "string" + } + }, + "required": [ + "view", + "id" + ], + "type": "object" + }, + { + "properties": { + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "onlySnapshots": { + "description": "When true, return only named snapshots.", + "type": "boolean" + }, + "view": { + "const": "versions", + "description": "Select the versions operation explicitly.", + "type": "string" + } + }, + "required": [ + "view", + "id" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "id": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + } + ] + }, + "onlySnapshots": { + "description": "When true, return only named snapshots.", + "type": "boolean" + }, + "view": { + "anyOf": [ + { + "const": "detail", + "description": "Select the detail operation explicitly.", + "type": "string" + }, + { + "const": "markdown", + "description": "Select the markdown operation explicitly.", + "type": "string" + }, + { + "const": "versions", + "description": "Select the versions operation explicitly.", + "type": "string" + } + ] + } +}
- Changed
save_category3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "name" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "order": { - "description": "New non-negative display order.", - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "order" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "order": { + "description": "New non-negative display order.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "action": { + "anyOf": [ + { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + } + ] + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "anyOf": [ + { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + } + ] + }, + "order": { + "description": "New non-negative display order.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + } +}
- Changed
save_document3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "content": { - "description": "Markdown document content; an empty string clears the content on update.", - "type": "string" - }, - "folderId": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "title": { - "description": "Document title, from 1 to 500 characters.", - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "content": { - "description": "Markdown document content; an empty string clears the content on update.", - "type": "string" - }, - "folderId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional folder UUID; null clears the placement on update." - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "title": { - "description": "Document title, from 1 to 500 characters.", - "maxLength": 500, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "content": { + "description": "Markdown document content; an empty string clears the content on update.", + "type": "string" + }, + "folderId": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "title": { + "description": "Document title, from 1 to 500 characters.", + "maxLength": 500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "action" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "content": { + "description": "Markdown document content; an empty string clears the content on update.", + "type": "string" + }, + "folderId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional folder UUID; null clears the placement on update." + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "title": { + "description": "Document title, from 1 to 500 characters.", + "maxLength": 500, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "action": { + "anyOf": [ + { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + } + ] + }, + "categoryId": { + "anyOf": [ + { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + } + ] + }, + "content": { + "anyOf": [ + { + "description": "Markdown document content; an empty string clears the content on update.", + "type": "string" + }, + { + "description": "Markdown document content; an empty string clears the content on update.", + "type": "string" + } + ] + }, + "folderId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional folder UUID; null clears the placement on update." + } + ] + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "title": { + "anyOf": [ + { + "description": "Document title, from 1 to 500 characters.", + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + { + "description": "Document title, from 1 to 500 characters.", + "maxLength": 500, + "minLength": 1, + "type": "string" + } + ] + } +}
- Changed
save_folder3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "parentId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional parent folder UUID; null selects the root." - } - }, - "required": [ - "action", - "name" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "categoryId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional category UUID; null clears the explicit category." - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "order": { - "description": "New non-negative display order.", - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - "parentId": { - "anyOf": [ - { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Optional parent folder UUID; null selects the root." - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "order" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "parentId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional parent folder UUID; null selects the root." + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "categoryId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + "order": { + "description": "New non-negative display order.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "parentId": { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional parent folder UUID; null selects the root." + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "action": { + "anyOf": [ + { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + } + ] + }, + "categoryId": { + "anyOf": [ + { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + }, + { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional category UUID; null clears the explicit category." + } + ] + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "anyOf": [ + { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + }, + { + "description": "Non-empty human-readable name or title.", + "maxLength": 255, + "minLength": 1, + "type": "string" + } + ] + }, + "order": { + "description": "New non-negative display order.", + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + "parentId": { + "anyOf": [ + { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional parent folder UUID; null selects the root." + }, + { + "anyOf": [ + { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Optional parent folder UUID; null selects the root." + } + ] + } +}
- Changed
save_tag3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "action": { - "const": "create", - "description": "Select the create operation explicitly.", - "type": "string" - }, - "color": { - "description": "Optional tag color, at most 20 characters.", - "maxLength": 20, - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "name" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "action": { - "const": "update", - "description": "Select the update operation explicitly.", - "type": "string" - }, - "color": { - "description": "Optional tag color, at most 20 characters.", - "maxLength": 20, - "type": "string" - }, - "id": { - "description": "UUID returned by the corresponding list or read operation.", - "format": "uuid", - "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", - "type": "string" - }, - "name": { - "description": "Non-empty human-readable name or title.", - "maxLength": 100, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "action", - "id" - ], - "type": "object" - } -]New value: +[ + { + "allOf": [ + { + "not": { + "anyOf": [ + { + "required": [ + "id" + ] + } + ] + } + } + ], + "properties": { + "action": { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + "color": { + "description": "Optional tag color, at most 20 characters.", + "maxLength": 20, + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 100, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "action", + "name" + ], + "type": "object" + }, + { + "properties": { + "action": { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + }, + "color": { + "description": "Optional tag color, at most 20 characters.", + "maxLength": 20, + "type": "string" + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "description": "Non-empty human-readable name or title.", + "maxLength": 100, + "minLength": 1, + "type": "string" + } + }, + "required": [ + "action", + "id" + ], + "type": "object" + } +] - added
Input schema / propertiesAdded value: +{ + "action": { + "anyOf": [ + { + "const": "create", + "description": "Select the create operation explicitly.", + "type": "string" + }, + { + "const": "update", + "description": "Select the update operation explicitly.", + "type": "string" + } + ] + }, + "color": { + "anyOf": [ + { + "description": "Optional tag color, at most 20 characters.", + "maxLength": 20, + "type": "string" + }, + { + "description": "Optional tag color, at most 20 characters.", + "maxLength": 20, + "type": "string" + } + ] + }, + "id": { + "description": "UUID returned by the corresponding list or read operation.", + "format": "uuid", + "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", + "type": "string" + }, + "name": { + "anyOf": [ + { + "description": "Non-empty human-readable name or title.", + "maxLength": 100, + "minLength": 1, + "type": "string" + }, + { + "description": "Non-empty human-readable name or title.", + "maxLength": 100, + "minLength": 1, + "type": "string" + } + ] + } +}
2 tool updates
v0.1.3- Added
batch_documents - Added
get_workspace_item
40 tool updates
v0.1.2- Removed
add_tag_to_document - Removed
create_category - Removed
create_document - Removed
create_folder - Changed
create_snapshot4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / description / descriptionPrevious value: -"Optional snapshot note up to 1,000 characters; omit if not needed."New value: +"Optional snapshot note, at most 1000 characters." - changed
Input schema / properties / documentId / descriptionPrevious value: -"UUID of the existing document, obtained from search_documents or list_documents and visible in the active scope."New value: +"UUID returned by the corresponding list or read operation." - changed
Input schema / properties / label / descriptionPrevious value: -"Non-empty snapshot label up to 200 characters, for example 'v1.0-release'."New value: +"Snapshot label, from 1 to 200 characters."
- Removed
create_tag - Changed
delete_category2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / id / descriptionPrevious value: -"UUID of the category to delete; obtain it from list_categories using a workspace-scoped credential."New value: +"UUID returned by the corresponding list or read operation."
- Changed
delete_document2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / id / descriptionPrevious value: -"UUID of the document to move to trash; obtain it from search_documents, list_documents, or get_document."New value: +"UUID returned by the corresponding list or read operation."
- Changed
delete_folder2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / id / descriptionPrevious value: -"UUID of the folder to delete; obtain it from list_folders. This detaches, but does not delete, the documents inside it."New value: +"UUID returned by the corresponding list or read operation."
- Changed
delete_tag2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / id / descriptionPrevious value: -"UUID of the target object, obtained from the corresponding list tool."New value: +"UUID returned by the corresponding list or read operation."
- Added
explore_graph - Removed
export_document - Added
find_documents - Removed
get_document - Changed
get_document_index_status2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / documentId / descriptionPrevious value: -"UUID of a document returned by search_documents or list_documents; it must be readable in the active scope."New value: +"UUID returned by the corresponding list or read operation."
- Removed
get_related_documents - Removed
get_version_history - Removed
list_categories - Removed
list_documents - Removed
list_folders - Removed
list_tags - Changed
list_trash1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Added
list_workspace_structure - Changed
permanently_delete_document2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / id / descriptionPrevious value: -"UUID of the target object, obtained from the corresponding list tool."New value: +"UUID returned by the corresponding list or read operation."
- Added
read_document - Changed
refresh_document_index2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / documentId / descriptionPrevious value: -"UUID of the document to refresh, obtained from search_documents or list_documents and visible in the active scope."New value: +"UUID returned by the corresponding list or read operation."
- Removed
remove_tag_from_document - Changed
restore_document_version3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / documentId / descriptionPrevious value: -"UUID of the document whose content should be restored; it must be visible in the active workspace or category."New value: +"UUID returned by the corresponding list or read operation." - changed
Input schema / properties / versionId / descriptionPrevious value: -"UUID of a version belonging to this document, from get_version_history. Use the version ID, not a snapshot label."New value: +"UUID returned by the corresponding list or read operation."
- Changed
restore_trashed_document2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / id / descriptionPrevious value: -"UUID of the target object, obtained from the corresponding list tool."New value: +"UUID returned by the corresponding list or read operation."
- Added
save_category - Added
save_document - Added
save_folder - Added
save_tag - Removed
search_documents - Removed
search_knowledge_graph - Added
set_document_tag - Removed
update_category - Removed
update_document - Removed
update_folder - Removed
update_tag
10 tool updates
v0.1.1- Added
add_tag_to_document - Added
create_tag - Added
delete_tag - Added
list_trash - Added
permanently_delete_document - Added
remove_tag_from_document - Added
restore_trashed_document - Added
update_category - Added
update_folder - Added
update_tag
21 tool updates
- First observed
create_category - First observed
create_document - First observed
create_folder - First observed
create_snapshot - First observed
delete_category - First observed
delete_document - First observed
delete_folder - First observed
export_document - First observed
get_document - First observed
get_document_index_status - First observed
get_related_documents - First observed
get_version_history - First observed
list_categories - First observed
list_documents - First observed
list_folders - First observed
list_tags - First observed
refresh_document_index - First observed
restore_document_version - First observed
search_documents - First observed
search_knowledge_graph - First observed
update_document
TDQS
Scored across 22 tools
Most tools target a distinct resource+action pair, and descriptions actively cross-reference alternatives (e.g. delete_document vs permanently_delete_document, restore_trashed_document vs restore_document_version, single vs batch operations). A few boundaries are softer: get_workspace_item is a grab-bag reader for folders/categories/tags that sits close to list_workspace_structure, and tag handling is spread across save_tag, set_document_tag, and batch_documents(action=add_tag), though the descriptions do clarify each case.
Almost everything follows a snake_case verb_noun pattern (list_trash, find_documents, save_document, delete_folder, restore_trashed_document). Minor deviations: batch_documents uses a bare noun-ish verb, permanently_delete_document stacks an adverb, and save_* doubles as create-or-update rather than a verb per operation.
22 tools is on the heavy side of the 3-15 sweet spot; the domain is genuinely broad (documents, folders, categories, tags, trash, versions, indexing, graph), so most tools earn a place. Still, a few could collapse (e.g. get_workspace_item into list/read patterns, and delete_document plus permanently_delete_document into one parameterized delete), making the surface feel wide rather than tight.
Full lifecycle coverage is present: create/read/update for documents, folders, categories, tags; trash, restore, and permanent purge; version snapshot and restore; index status and refresh; plus batch and graph exploration. Remaining gaps are minor, such as no explicit document move/copy tool outside batch_documents(action=move) and no bulk folder/tag hierarchy operations.
Maintenance
Related MCP Connectors
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
MCP server for querying Forkast documentation
MCP server for agentverse documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseBqualityDmaintenanceA complete MCP server for Retrieval-Augmented Generation with file management and vector memory for agents. Supports multiple document formats (PDF, DOCX, TXT, MD, CSV, JSON) with semantic search using Hugging Face embeddings and ChromaDB for efficient vector storage.114 npm1MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for structured document management of markdown and YAML files, with RBAC, git-based approval workflows, and semantic search, enabling agents to read, edit, and maintain documents under governance.MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server for document parsing, ingestion, query (including multimodal), and lightweight knowledge graph inspection, enabling RAG workflows via the Model Context Protocol.-
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes one or more documentation folders (Markdown, MDX, TXT) to AI agents, enabling listing, reading, and searching of documentation files.-