Skip to main content

Overview

search_private_folders and search_team_folders find private and team folders by name. Both use case-insensitive substring matching with NFC normalization, so Korean and other CJK text matches reliably.
  • search_private_folders — Search your private (non-shared) folders.
  • search_team_folders — Search team (workspace-shared) folders.
Both tools take the same parameters and behave the same way. Both require credentials with user identity (a user-scoped API key or OAuth token) and the mcp:folder:read scope. Pass a workspaceGuid to search another workspace. When to use
  • Find a specific folder by name when you only remember part of it (e.g., “general” matches “0.General”, “General”, “general-things”).
  • Enumerate all folders in a workspace (empty keyword returns all, paginated).
  • Korean character search: keyword="네이버" matches "네이버 모니터링", "0.네이버", etc.
How search works
  • Case-insensitive substring matching (NFC-normalized for CJK reliability).
  • Folders sorted by match position (start-of-name ranks higher) then by name length (shorter ranks higher).
  • Each result includes the folder’s breadcrumb path (e.g., "Engineering > Q1 Planning > Sprint 1").
  • Empty keyword returns all folders, paginated.
  • Backward-compatible dual response fields: content (recommended) and notes (legacy alias).
v1 implementation: Each call fetches the folder tree and filters it server-side. The MCP signature stays the same when a backend search endpoint is added.

Parameters

Both search_private_folders and search_team_folders accept identical parameters:

keyword (optional)

Case-insensitive substring match. The search is normalized using NFC (Canonical Decomposition, followed by Canonical Composition) to handle Korean, Japanese, Chinese, and other CJK text reliably. Empty or omitted keyword returns all folders, paginated. Examples:
  • "general" matches "0.General", "General", "general-things" (sorted by match position, then name length).
  • "네이버" matches "네이버 모니터링", "0.네이버", "팀별 > 네이버".

cursor (optional)

Pass the nextCursor from a previous response to fetch the next page. Omit for the first page.

size (optional)

Results per page. Default 30, max 100. Smaller pages return faster; larger pages reduce round-trips.

Response Format

Success Response (search_private_folders)

Field Descriptions:
The response includes both content (recommended, modern naming) and notes (legacy alias) for backward compatibility. They reference the same array object — pick whichever your code prefers and ignore the other.

Usage Examples

Example 1: search_private_folders — Simple keyword

Request:
Returns all private folders matching “general” (case-insensitive), paginated. Response:
(Since there are no more results, the nextCursor field is absent from the response.)

Example 2: search_team_folders — Korean keyword

Request:
Returns all team folders with “네이버” in the name (NFC-normalized for CJK matching). Response:
(Since there are no more results, the nextCursor field is absent from the response.)

Example 3: Enumerate all folders (empty keyword)

Request:
Returns the first 50 folders (all top-level and nested) in no particular order. Response:

Example 4: Pagination

First page (omit cursor):
Second page (using nextCursor from first response):

Sort Order

Results are sorted by match position, then by folder name length (shorter names rank higher at the same match position):
  1. Match position ascending — Folders whose name starts with the keyword rank above folders that contain it later in the name.
    • keyword="general""General" (position 0) ranks above "0.General" (position 2).
  2. Name length ascending — When match position is tied, shorter names rank higher.
    • Both start at position 0 and match “gen”: "General" (7 chars) ranks above "General Announcements" (21 chars).
This ensures the most specific matches surface first.

Best Practices

search_private_folders searches your private (non-shared) folders; search_team_folders searches team (workspace-shared) folders. Both require credentials with user identity (a user-scoped API key or OAuth token) and the mcp:folder:read scope; choose the tool by folder type. When the workspace has no matching folders, the response is an empty list (not an error).
Both tools operate on your API key’s workspace by default. To search folders in another workspace you can access, pass an explicit workspaceGuid obtained from list_workspaces.
Korean, Japanese, and Chinese text is automatically NFC-normalized server-side. You don’t need to preprocess your keywords — just pass the raw text and the matching engine handles it.Example: keyword="네이버" will match folders with composed or decomposed forms of the same text.
Always use the nextCursor returned in the previous response. Don’t try to compute offsets yourself — pagination behavior may change in future releases.
To get a complete list of folders without filtering, omit keyword or pass an empty string. Use size and nextCursor to paginate through the full result set.

Common Errors

Insufficient scope

Solution: Your API key lacks the mcp:folder:read scope. Generate a new key with the correct scopes, or contact your workspace administrator to grant access.

Token Usage

Folder search is lightweight — results include only names and paths, not content.

Scope Requirements

Both search_private_folders and search_team_folders require credentials with user identity (a user-scoped API key or OAuth token) and the mcp:folder:read scope. Configure API keys at Tiro Platform API Keys.
Note: The folder write tools (update_folder, move_folder, reorder_folders) were deprecated on 2026-07-20. MCP is currently read-only. See Edit notes and folders for details.
  • list_notes — Find notes within a specific folder using filter.folderId (no separate “list folders” tool needed).
  • search_notes — Search notes in a folder with filter.folderId (keyword-required deep search).