notion-multi-mcp
Allows AI assistants to operate multiple Notion accounts simultaneously, with prefixed tools for pages, databases, blocks, comments, data sources, and search.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@notion-multi-mcpSearch work for 'meeting notes'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
notion-multi-mcp
English
An MCP (Model Context Protocol) server that lets AI assistants operate multiple Notion accounts simultaneously. Each account gets its own prefixed toolset — no conflicts, no mix-ups.
Features
Multi-account — connect 2, 3, or more Notion workspaces in a single MCP server
Custom prefixes — you name each account (e.g.
work,personal,team), tools are auto-generated aswork_search,personal_create_page,team_query_database, etc.22 tools per account — full Notion API coverage: pages, databases, blocks, comments, data sources, search
Zero conflict — each account is fully isolated with its own API key and client instance
Quick Start
Install
pip install notion-multi-mcpOr run directly without installing:
uvx notion-multi-mcpConfigure in Claude Code
claude mcp add notion-multi -- uvx notion-multi-mcpThen set the environment variable in your Claude Code settings (~/.claude/settings.json):
{
"mcpServers": {
"notion-multi": {
"command": "uvx",
"args": ["notion-multi-mcp"],
"env": {
"NOTION_ACCOUNTS": "work:ntn_your_work_key,personal:ntn_your_personal_key"
}
}
}
}Configure in Cursor / VS Code
Add to .cursor/mcp.json or .vscode/mcp.json:
{
"mcpServers": {
"notion-multi": {
"command": "uvx",
"args": ["notion-multi-mcp"],
"env": {
"NOTION_ACCOUNTS": "work:ntn_your_work_key,personal:ntn_your_personal_key"
}
}
}
}Configuration
Set NOTION_ACCOUNTS with comma-separated prefix:api_key pairs:
NOTION_ACCOUNTS=work:ntn_abc123,personal:ntn_def456,team:ntn_ghi789This example creates 3 accounts × 22 tools = 66 tools:
work_search,work_create_page,work_query_database, ...personal_search,personal_create_page,personal_query_database, ...team_search,team_create_page,team_query_database, ...
Getting Notion API Keys
Click "New integration" for each workspace
Copy the Internal Integration Secret (starts with
ntn_)Important: In Notion, share the pages/databases you want to access with your integration
Available Tools (per account)
Each connected account gets all 22 tools, prefixed with the account name:
# | Tool | Description |
1 |
| Search pages and databases |
2 |
| Query database contents (requires |
3 |
| Create a new page |
4 |
| Get page information |
5 |
| Update page properties |
6 |
| Get a specific page property |
7 |
| Move a page to a new parent |
8 |
| Get block information |
9 |
| Update a block |
10 |
| Delete a block |
11 |
| List child blocks |
12 |
| Append child blocks |
13 |
| Get database schema |
14 |
| Create a new database |
15 |
| Update database properties |
16 |
| Query a data source |
17 |
| Get data source info |
18 |
| List data source templates |
19 |
| Update a data source |
20 |
| Create a comment |
21 |
| List comments |
22 |
| Get bot user info |
Usage Examples
Once configured, you can ask your AI assistant:
"Search for 'Q1 Report' in my work Notion" →
work_search"Create a new page in my personal Notion" →
personal_create_page"Copy the database schema from work to team" →
work_retrieve_database+team_create_database"List all pages in both accounts" →
work_search+personal_searchin parallel
Breaking Change in v0.2.0: query_database now requires data_source_id
The upstream SDK notion-client v3.x removed databases.query(). Notion's API now uses data sources instead of databases for query operations.
Before (v0.1.x):
query_database(database_id="108640b9-...")After (v0.2.0):
query_database(data_source_id="79e0a629-...")How to find your data_source_id: Use {prefix}_search with filter_json: {"value": "data_source", "property": "object"} to find the data source ID that corresponds to your database.
The data_source tools (query_data_source, retrieve_data_source, list_data_source_templates, update_data_source) now also use the SDK natively instead of raw HTTP requests.
Known Issue: notion-client v3.0.0 — properties silently ignored
The upstream Python SDK notion-client v3.0.0 has a bug where databases.create() and databases.update() silently drop the properties parameter, so you cannot create databases with custom columns or update existing database schemas through the SDK.
Root cause: The pick() whitelist in api_endpoints.py does not include "properties". (GitHub Issue)
Workaround: Manually add "properties" to the pick() calls in your installed notion-client package:
# Find the file
python -c "import notion_client; print(notion_client.__file__)"
# → .../site-packages/notion_client/__init__.py
# Edit: .../site-packages/notion_client/api_endpoints.pyIn api_endpoints.py, find the DatabasesEndpoint class and add "properties" to both pick() calls:
# In create() — add "properties" to the pick list:
body=pick(
kwargs,
"parent",
"title",
"description",
"properties", # ← add this line
"is_inline",
"initial_data_source",
"icon",
"cover",
),
# In update() — add "properties" to the pick list:
body=pick(
kwargs,
"parent",
"title",
"description",
"properties", # ← add this line
"is_inline",
"icon",
"cover",
"in_trash",
"is_locked",
),This fix will be overwritten if you upgrade notion-client. Check future releases for an official fix.
Requirements
Python 3.10+
Notion integration API keys (create here)
Development
git clone https://github.com/kerwin77106/Notion-Multi-MCP.git
cd notion-multi-mcp
pip install -r requirements.txt
export NOTION_ACCOUNTS="dev:ntn_your_key_here"
python notion_multi_mcp.pyChangelog
Version | Changes |
v0.2.1 | Fix |
v0.2.0 | ⚠️ Breaking: |
v0.1.1 | Fix MCP client compatibility for JSON parameters |
v0.1.0 | Initial release |
License
Related MCP server: notion-mcp-server
繁體中文
一個 MCP (Model Context Protocol) 伺服器,讓 AI 助手能同時操作多個 Notion 帳號。每個帳號擁有獨立的前綴工具集,不會混淆、不會衝突。
功能特色
多帳號支援 — 可連接 2 個、3 個甚至更多 Notion 工作區
自訂前綴 — 自由命名帳號(如
work、personal、team),工具會自動產生為work_search、personal_create_page、team_query_database等每帳號 22 個工具 — 完整覆蓋 Notion API:頁面、資料庫、區塊、評論、資料來源、搜尋
完全隔離 — 每個帳號使用獨立的 API Key 和 Client 實例
快速開始
安裝
pip install notion-multi-mcp或直接執行(不需安裝):
uvx notion-multi-mcp在 Claude Code 中設定
claude mcp add notion-multi -- uvx notion-multi-mcp然後在 Claude Code 設定檔(~/.claude/settings.json)中設定環境變數:
{
"mcpServers": {
"notion-multi": {
"command": "uvx",
"args": ["notion-multi-mcp"],
"env": {
"NOTION_ACCOUNTS": "work:ntn_你的工作帳號金鑰,personal:ntn_你的個人帳號金鑰"
}
}
}
}在 Cursor / VS Code 中設定
新增到 .cursor/mcp.json 或 .vscode/mcp.json:
{
"mcpServers": {
"notion-multi": {
"command": "uvx",
"args": ["notion-multi-mcp"],
"env": {
"NOTION_ACCOUNTS": "work:ntn_你的工作帳號金鑰,personal:ntn_你的個人帳號金鑰"
}
}
}
}設定方式
設定 NOTION_ACCOUNTS 環境變數,用逗號分隔 前綴:API金鑰 組合:
NOTION_ACCOUNTS=work:ntn_abc123,personal:ntn_def456,team:ntn_ghi789以上範例會產生 3 個帳號 × 22 個工具 = 66 個工具:
work_search、work_create_page、work_query_database⋯personal_search、personal_create_page、personal_query_database⋯team_search、team_create_page、team_query_database⋯
取得 Notion API Key
為每個要連接的工作區點擊 「New integration」
複製 Internal Integration Secret(以
ntn_開頭)重要:在 Notion 中,將你要存取的頁面/資料庫分享給你建立的 Integration
可用工具(每個帳號各一套)
每個連接的帳號都會取得全部 22 個工具,工具名稱加上帳號前綴:
# | 工具名稱 | 說明 |
1 |
| 搜尋頁面和資料庫 |
2 |
| 查詢資料庫內容(需傳入 |
3 |
| 建立新頁面 |
4 |
| 取得頁面資訊 |
5 |
| 更新頁面屬性 |
6 |
| 取得特定頁面屬性 |
7 |
| 將頁面移動到新的父頁面 |
8 |
| 取得區塊資訊 |
9 |
| 更新區塊 |
10 |
| 刪除區塊 |
11 |
| 列出子區塊 |
12 |
| 追加子區塊 |
13 |
| 取得資料庫結構 |
14 |
| 建立新資料庫 |
15 |
| 更新資料庫屬性 |
16 |
| 查詢資料來源 |
17 |
| 取得資料來源資訊 |
18 |
| 列出資料來源範本 |
19 |
| 更新資料來源 |
20 |
| 建立評論 |
21 |
| 列出評論 |
22 |
| 取得 Bot 使用者資訊 |
使用範例
設定完成後,你可以對 AI 助手說:
「在我的 work Notion 搜尋『Q1 報告』」→ 呼叫
work_search「在 personal Notion 建一個新頁面」→ 呼叫
personal_create_page「把 work 的資料庫結構複製到 team」→ 呼叫
work_retrieve_database+team_create_database「列出兩個帳號的所有頁面」→ 同時呼叫
work_search和personal_search
v0.2.0 破壞性變更:query_database 改為需要 data_source_id
上游 SDK notion-client v3.x 移除了 databases.query()。Notion API 現在使用 data sources 取代 databases 進行查詢操作。
變更前(v0.1.x):
query_database(database_id="108640b9-...")變更後(v0.2.0):
query_database(data_source_id="79e0a629-...")如何取得 data_source_id: 使用 {前綴}_search 並帶入 filter_json: {"value": "data_source", "property": "object"} 來查詢對應資料庫的 data source ID。
data_source 系列工具(query_data_source、retrieve_data_source、list_data_source_templates、update_data_source)現在也改用 SDK 原生方法,不再使用 raw HTTP request。
已知問題:notion-client v3.0.0 — properties 參數被靜默忽略
上游 Python SDK notion-client v3.0.0 存在一個 bug:databases.create() 和 databases.update() 會靜默丟棄 properties 參數,導致無法透過 SDK 建立帶有自訂欄位的資料庫,也無法更新資料庫結構。
根本原因: api_endpoints.py 中的 pick() 白名單沒有包含 "properties"。(GitHub Issue)
解決方法: 手動在已安裝的 notion-client 套件中加入 "properties":
# 找到檔案位置
python -c "import notion_client; print(notion_client.__file__)"
# → .../site-packages/notion_client/__init__.py
# 編輯:.../site-packages/notion_client/api_endpoints.py在 api_endpoints.py 中找到 DatabasesEndpoint 類別,在兩個 pick() 呼叫中加入 "properties":
# 在 create() 中 — 加入 "properties":
body=pick(
kwargs,
"parent",
"title",
"description",
"properties", # ← 加入這行
"is_inline",
"initial_data_source",
"icon",
"cover",
),
# 在 update() 中 — 加入 "properties":
body=pick(
kwargs,
"parent",
"title",
"description",
"properties", # ← 加入這行
"is_inline",
"icon",
"cover",
"in_trash",
"is_locked",
),升級 notion-client 時此修改會被覆蓋,請留意未來版本是否已修復。
系統需求
Python 3.10+
Notion Integration API Key(在此建立)
開發
git clone https://github.com/kerwin77106/Notion-Multi-MCP.git
cd notion-multi-mcp
pip install -r requirements.txt
export NOTION_ACCOUNTS="dev:ntn_你的金鑰"
python notion_multi_mcp.py版本歷史
版本 | 變更內容 |
v0.2.1 | 修正 |
v0.2.0 | ⚠️ 破壞性變更: |
v0.1.1 | 修正 MCP 客戶端 JSON 參數相容性問題 |
v0.1.0 | 初始版本發布 |
授權
Available Tools
44 toolsdefault_append_block_childrenC
[default] Append child blocks
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| children_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only says 'Append child blocks', which implies mutation but does not mention required permissions, reversibility, or error handling. This is insufficient for a mutation tool.
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 only one sentence, which is structurally concise but lacks substantive information. It is under-specified and does not earn its place as a useful guide.
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 tool has 2 required parameters with no documentation, no annotations, and an output schema not explained, the description is completely inadequate. It fails to provide enough context for an AI agent to correctly select and invoke the 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?
The input schema has 0% description coverage, meaning the description must explain the parameters. However, the description does not mention 'block_id' or 'children_json' at all, leaving their meanings and formats entirely undocumented.
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 'Append child blocks', which is a verb+resource pair, but it is vague and essentially restates the tool name. It does not specify which parent block or the scope of 'child blocks', nor does it differentiate from siblings like 'default_update_block' or 'default_create_page'.
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?
No guidance is provided on when to use this tool versus alternatives such as 'default_update_block' or 'default_create_page'. The description lacks context for appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_create_commentC
[default] Create a comment
| Name | Required | Description | Default |
|---|---|---|---|
| rich_text_json | Yes | ||
| parent_json | No | ||
| discussion_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behaviors. It only says 'Create a comment', with no mention of side effects, permissions, or return behavior. This is insufficient for an agent to understand the tool's impact.
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 extremely short (three words), but conciseness is undermined by omission. It fails to provide necessary context, making it under-specified rather than efficiently 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?
Despite having an output schema, the description says nothing about return values or output. The tool is simple but lacks essential context for a creation operation, making it incomplete.
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 description provides no information about the three parameters (rich_text_json, parent_json, discussion_id). With 0% schema coverage, the agent has no way to understand parameter meaning beyond names. This is a critical gap.
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 'Create a comment', which is a clear verb+resource. However, it lacks specificity about what kind of comment (e.g., on a page or block), and while it distinguishes from sibling 'retrieve_comments' as a write operation, it does not differentiate from 'test_create_comment'. Adequate but minimal.
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?
No guidance is provided on when to use this tool versus alternatives like 'test_create_comment' or other creation tools. The agent is given no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_create_databaseC
[default] Create a new database
| Name | Required | Description | Default |
|---|---|---|---|
| parent_json | Yes | ||
| title_json | Yes | ||
| properties_json | Yes | ||
| icon_json | No | ||
| cover_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits. It only says 'Create a new database', with no information about side effects, permissions, required parent, or parameter behavior.
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 very concise (one sentence), which is good for readability but comes at the cost of missing essential details. It earns its place but is insufficient.
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 complexity (5 parameters, 0% schema coverage, no annotations, no output schema explanation), the description is extremely incomplete. An agent would not have enough information to use 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 0%, meaning parameters have no descriptions. The tool description adds no meaning to parameters like parent_json, title_json, properties_json, which are critical for correct invocation.
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 'Create a new database' which clearly indicates the action and resource. However, it lacks differentiation from sibling tools like default_create_page or default_update_database, and the '[default]' prefix is unexplained.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_create_pageD
[default] Create a new page
| Name | Required | Description | Default |
|---|---|---|---|
| parent_json | Yes | ||
| properties_json | Yes | ||
| children_json | No | ||
| icon_json | No | ||
| cover_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist and the description discloses no behavioral traits (e.g., side effects, permissions, or that parent_json is required for hierarchy).
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 too brief to be useful; it is under-specified rather than concise, failing to convey essential 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?
Despite having 5 parameters (2 required) and an output schema, the description provides no context about the tool's operation, return values, or integration with other tools.
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 0% and the description adds no explanation for any of the 5 parameters (parent_json, properties_json, etc.), leaving their meaning entirely to their 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?
The description 'Create a new page' states the action and resource but lacks specificity about what type of page (e.g., Notion-like) and does not distinguish from sibling tools like 'default_create_database'.
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?
No guidance provided on when to use this tool versus alternatives (e.g., default_create_database, test_create_page), or prerequisites like requiring a parent context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_delete_blockC
[default] Delete a block
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states 'Delete' without clarifying permanence, cascading effects, or any authorization requirements.
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?
Extremely concise (one phrase) but lacks structure or additional context. Acceptable for a simple operation but could be improved.
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, but the description still fails to explain deletion behavior, consequences, or prerequisites. Inadequate for an agent to use safely.
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 0%. Description adds no meaning to the 'block_id' parameter beyond what is already in the schema (title 'Block Id').
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 specifies the verb 'Delete' and the resource 'a block', distinguishing it from sibling tools that perform other actions (create, update, retrieve).
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?
No guidance on when to use this tool vs alternatives (e.g., when to delete vs update/retrieve). No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_get_block_childrenC
[default] List child blocks
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It does not state that this is a read-only operation, nor does it mention pagination behavior (though parameters hint at it). The description adds no transparency beyond the action.
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 extremely concise (four words), but it is underspecified. It lacks critical information that an agent needs to use the tool correctly, making it insufficiently informative.
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?
Although an output schema exists, the description omits any mention of pagination or the nature of the returned data (list of block objects). A list tool with pagination parameters should provide guidance on iteration or result structure.
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 0%, meaning the description does not explain any of the three parameters (block_id, start_cursor, page_size). The description adds no meaning beyond the field names and types in 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?
The description 'List child blocks' is a clear verb+resource pattern, but it lacks specificity about which block's children and how the listing behaves. Among siblings, it differentiates as a list operation versus create/update/retrieve single, but the statement is minimal.
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?
No guidance is provided on when to use this tool versus alternatives like default_retrieve_block or default_search. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_get_selfA
[default] Get bot user info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It states the operation (get) but does not elaborate on side effects, authentication needs, rate limits, or the exact contents of the returned data. The description is adequate for a simple read operation but lacks detail.
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 extremely concise with a single sentence. It is front-loaded with the most important information. Every word is meaningful, with no waste or repetition.
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 tool's simplicity (zero parameters) and the presence of an output schema, the description is mostly complete. It identifies the resource but could optionally mention the scope or typical return fields. However, the output schema likely covers these details, so the description is sufficient.
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 input schema has no parameters, so schema coverage is 100% trivially. The description does not need to add parameter details. The baseline of 4 is appropriate since the description adds no redundant information.
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 'Get bot user info' clearly identifies the verb (get) and the specific resource (bot user info). It effectively distinguishes this tool from sibling tools, which focus on blocks, pages, databases, etc., making it 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?
The description provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or context. However, the tool's specific purpose is obvious, and no sibling tool duplicates this functionality, so the lack of guidelines is not critical but still a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_list_data_source_templatesC
[default] List data source templates
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, mutability, side effects, or pagination. For a listing operation, agents need to know if this is safe to call multiple times, but it is not stated.
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 very short but lacks necessary detail. It is under-specified rather than concise, as it fails to convey essential usage 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 existence of sibling tools (e.g., query_data_source, retrieve_data_source) and the output schema, the description should explain what templates are returned. Without this, agents cannot appropriately select or invoke the 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?
The schema has 0% description coverage, and the description does not explain the single required parameter 'data_source_id'. No hints about format, source, or constraints are provided, leaving agents to guess.
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 'List data source templates' clearly states the action (list) and resource (data source templates), but does not differentiate it from sibling tools like query_data_source or retrieve_data_source. It is specific enough to avoid tautology, but lacks clarity on what 'templates' means in context.
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?
No usage guidelines provided. The description does not specify when to use this tool over alternatives, nor does it mention prerequisites or context (e.g., requiring a data source to exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_move_pageC
[default] Move a page to a new parent
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| new_parent_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits like child page handling, permission requirements, or whether it supports moving across different parents. The description is too brief.
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 sentence, which is concise, but it lacks structure and front-loading of critical information. It does not waste words, but under-specification reduces its effectiveness.
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 existence of an output schema, the description need not explain return values, but it is still incomplete. It does not explain the required parameters or provide enough context for an AI agent to correctly invoke the tool. The two parameters are undocumented.
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 0%, so the description must compensate. It fails to explain the parameters 'page_id' and 'new_parent_json'. The format of 'new_parent_json' (string or object) is not clarified, leaving ambiguity.
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 states the action 'move a page' and the target 'new parent'. It effectively distinguishes this tool from sibling tools like create, update, or delete. However, it could be more specific about the scope (e.g., moving within the same workspace).
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?
No guidance on when to use this tool versus alternatives, such as updating the page's parent property via default_update_page. There is no mention of prerequisites or restrictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_query_databaseB
[default] Query database contents (use data_source_id, not database_id)
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes | ||
| filter_json | No | ||
| sorts_json | No | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It only mentions 'query' which implies a read operation, but does not disclose any behavioral traits such as whether it is read-only, destructive, required permissions, or error handling. This is insufficient for safe invocation.
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 concise sentence with the action front-loaded. While concise, it sacrifices completeness; however, for a simple query tool, it is appropriately sized.
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?
Despite having an output schema, the description lacks details on how to use parameters like filtering, sorting, and pagination. The 5-parameter tool with 0% schema descriptions needs more context to be fully usable.
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 has 0% description coverage, so the description must compensate. It only clarifies the required parameter (data_source_id) but provides no meaning for filter_json, sorts_json, start_cursor, or page_size, leaving the agent to infer from schema names alone.
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 states the tool queries database contents, specifying the resource (database) and verb (query). It also distinguishes from siblings by noting to use data_source_id, not database_id, which differentiates it from tools like default_retrieve_database.
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 provides clear context by instructing to use data_source_id instead of database_id, implying the correct parameter. However, it does not explicitly state when to use this tool over alternatives like default_query_data_source or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_query_data_sourceC
[default] Query a data source
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes | ||
| filter_json | No | ||
| sorts_json | No | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as being read-only, pagination behavior, or potential side effects. The input schema hints at pagination, but the description omits this.
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 extremely short (one phrase) but at the expense of clarity. It is not structured to provide useful information; it reads more like a label than a description.
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?
Despite having an output schema, the description fails to explain what the tool returns or how to use it effectively. With 5 parameters and no annotations, the description is inadequate for an agent to invoke 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 0%, and the description adds no meaning to the parameters (data_source_id, filter_json, sorts_json, etc.). The agent must infer from parameter titles alone.
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 it queries a data source, but it lacks specificity to distinguish from siblings like query_database or retrieve_data_source. The verb 'query' is clear, but the resource is vague.
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?
No guidance on when to use this tool vs. alternatives. Among siblings, query_database and retrieve_data_source exist, but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_retrieve_blockC
[default] Get block information
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only implies a read operation ('Get'), but omits details on permissions, error handling, or rate limits. The presence of an output schema is not mentioned.
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 concise (one sentence) but sacrifices essential detail. It is front-loaded with the tool name prefix, but overall structure trades completeness for brevity.
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 tool's simplicity (one parameter, output schema exists), the description is overly minimal. It lacks usage context, parameter explanation, and behavioral notes, making it insufficient for confident agent invocation.
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 0%, and the description adds no information about the parameter 'block_id'. The schema title 'Block Id' provides minimal meaning, and the agent receives no guidance on how to obtain or format the ID.
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 'Get block information' clearly states the action and resource. However, it does not distinguish from sibling tools like default_retrieve_comments or default_get_block_children, relying on the name for specificity.
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?
No guidance is provided on when to use this tool versus alternatives such as default_search or default_retrieve_database. The agent receives no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_retrieve_commentsD
[default] List comments
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, pagination, or potential side effects. The agent has no insight into the tool's operational characteristics.
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 extremely short (two words), which is not true conciseness but under-specification. It fails to provide essential information, making it insufficient for an agent.
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 tool has three parameters and an output schema, the description is vastly incomplete. It does not explain what the tool returns, pagination behavior, or the role of the required block_id 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 coverage is 0% meaning parameter descriptions are empty. The description does not explain any parameters (e.g., block_id, start_cursor, page_size). Without compensation, the agent cannot understand how to use them.
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 'List comments' is a verb+noun, indicating the tool retrieves comments. However, it lacks specificity about the context (e.g., for a block) and does not differentiate from sibling retrieval tools. It is minimally clear but not tautological.
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?
No guidance on when to use this tool versus alternatives like default_retrieve_block or default_retrieve_page. No mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_retrieve_databaseC
[default] Get database schema
| Name | Required | Description | Default |
|---|---|---|---|
| database_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not disclose whether the operation is read-only, requires authentication, or any side effects. The output schema exists but is not mentioned.
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, front-loaded sentence, but it is under-specified. It gains no points for brevity when important information is omitted.
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?
Despite the existence of an output schema, the description does not explain what the tool returns (e.g., table names, column types). The tool is simple, but more context would improve usability.
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 0% for the only parameter (database_id), and the description does not add any context about the parameter's format, source, or 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?
The description clearly states the verb 'Get' and the resource 'database schema', which distinguishes this tool from sibling tools like 'default_retrieve_block' or 'default_retrieve_page'. However, it could be more precise by specifying what aspects of the schema are retrieved.
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?
No guidance is provided on when to use this tool versus alternatives (e.g., query_database). The description lacks context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_retrieve_data_sourceC
[default] Get data source info
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Get data source info' without disclosing side effects, authentication needs, rate limits, or whether it is read-only. This is insufficient for behavioral transparency.
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 extremely concise (one phrase). While there is no wasted text, it lacks structure and does not front-load essential information. It is too brief to be fully effective.
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 one parameter, no annotations, and an existing output schema (not shown), the description fails to explain what 'data source info' includes or how the output is structured. This is inadequate for a complete understanding, especially with siblings that might overlap.
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 input schema has one parameter ('data_source_id') with no description. Schema description coverage is 0%, and the description adds no meaning beyond the parameter name. The agent receives no guidance on what the parameter represents or how to use it.
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 'Get data source info' clearly states a verb ('Get') and a resource ('data source info'). However, it does not explicitly distinguish from siblings like 'default_query_data_source' or 'default_list_data_source_templates', leaving some ambiguity about what 'info' includes.
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?
No guidance on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or exclusions. The description lacks any context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_retrieve_pageC
[default] Get page information
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. 'Get page information' implies a read-only operation, but lacks disclosure on error behavior, permissions, or whether the page must exist. The presence of an output schema partially alleviates the need to describe return values.
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 extremely short, but the '[default]' prefix appears redundant. While concise, it sacrifices necessary information for brevity.
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?
Despite having only one parameter and an output schema, the description fails to clarify the scope (e.g., that it retrieves the full page by ID) and does not differentiate from retrieving a page property. Sibling tools further highlight the need for clearer scope.
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 0%, and the description does not mention the 'page_id' parameter at all. It adds no meaning beyond the schema's crude type and requirement.
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 states the verb and resource: 'Get page information'. This distinguishes it from sibling tools like default_retrieve_block and default_retrieve_database, which retrieve different resources.
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?
No guidance on when to use this tool versus alternatives such as default_retrieve_page_property or default_retrieve_block. The description gives no context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_retrieve_page_propertyC
[default] Get a specific page property
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| property_id | Yes | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It states only 'Get a specific page property' without disclosing any behavioral traits such as read-only nature, auth requirements, error handling, or side effects. This is insufficient.
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 extremely concise with a single sentence, which provides efficiency but sacrifices necessary detail. It is front-loaded but under-informative for a tool with multiple parameters and no annotations.
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?
Despite an existing output schema, the description lacks context on prerequisites (e.g., page must exist), possible error conditions, and the purpose of the pagination parameters. The description is too minimal to be considered 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 description coverage is 0%, yet the description adds no explanation for any of the four parameters. The parameters page_id, property_id, start_cursor, and page_size are named but not clarified; for example, start_cursor and page_size suggest pagination, which is unexpected for a single property retrieval and remains unexplained.
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 'Get a specific page property' clearly indicates the verb and resource, but does not elaborate on what constitutes a page property or distinguish it from related tools like default_retrieve_page. It is adequate but lacks specificity.
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?
No guidance on when to use this tool versus alternatives such as default_retrieve_page or default_retrieve_block. There is no mention of optimal scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_searchC
[default] Search pages and databases
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| filter_json | No | ||
| sort_json | No | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'Search pages and databases' with no disclosure of pagination, rate limits, or result behavior. Essential traits are missing.
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 sentence and thus concise, but it is too terse given the tool's complexity (5 parameters). It lacks front-loaded key information or any structure.
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 5 parameters, no parameter descriptions, and an output schema not detailed, the description is incomplete. It fails to explain search scope, filtering, sorting, or pagination, leaving critical gaps.
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 0%, yet the description adds zero meaning to the parameters. It does not explain query, filter_json, sort_json, start_cursor, or page_size, leaving the agent to infer from titles alone. This is insufficient.
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 states the action 'Search' and the resources 'pages and databases', which distinguishes it from sibling tools like 'retrieve_block' or 'query_database' that are more specific. However, it lacks explicit differentiation from 'query_database'.
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 provides no guidance on when to use this tool versus alternatives such as 'query_database' or 'query_data_source'. It does not specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_update_blockC
[default] Update a block
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| block_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states 'update' implying mutation, but does not detail side effects, permissions, idempotency, limits, or return behavior. Insufficient transparency.
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 sentence and concise, but it sacrifices substance for brevity. It is front-loaded but lacks the detail needed for effective tool invocation.
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 existence of an output schema and the minimal description, the tool lacks sufficient context for correct usage. The description does not explain the tool's scope, behavior, or relationship to sibling tools, making it incomplete.
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 0%, and the description adds no information about the two parameters (block_id, block_json). It does not explain expected formats, constraints, or how block_json should be structured, leaving the agent with only the schema property 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?
The description 'Update a block' is a verb+resource but lacks specificity. It does not differentiate from sibling update tools like default_update_database or default_update_page, and fails to clarify what a 'block' refers to in this context.
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?
No guidance is provided on when to use this tool versus alternatives such as default_retrieve_block for reading or default_delete_block for deletion. The description gives no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_update_databaseC
[default] Update database properties
| Name | Required | Description | Default |
|---|---|---|---|
| database_id | Yes | ||
| title_json | No | ||
| properties_json | No | ||
| icon_json | No | ||
| cover_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It only says 'Update database properties', which implies mutation but does not reveal side effects, required permissions, or response behavior. This is insufficient for a mutation tool.
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 very concise at only five words. However, conciseness comes at the cost of helpfulness; it omits nearly all useful detail. While not verbose, it fails to provide sufficient information for correct tool usage.
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 tool has five parameters with no schema descriptions, no annotations, and a complex output schema, the description is extremely incomplete. It does not explain what properties can be updated, how the JSON parameters should be structured, or what the response contains. The agent would have to guess or infer crucial details.
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 0%, meaning the schema provides no parameter descriptions. The description adds no meaning to the five parameters (database_id, title_json, properties_json, icon_json, cover_json). It does not explain their purpose or format, leaving the agent with no guidance beyond the parameter names and types.
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 states the action and resource: 'Update database properties'. It is specific enough to understand the tool's purpose, but does not differentiate from sibling tools like update_block or update_data_source, which also perform updates on different resources.
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?
No guidance is provided on when to use this tool versus alternatives. There is no indication of prerequisites, recommended scenarios, or when not to use it. The description simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_update_data_sourceD
[default] Update a data source
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes | ||
| data_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It merely says 'Update a data source' with no details on destructive nature, authentication requirements, rate limits, or side effects, which is woefully inadequate.
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?
Extremely brief (one sentence) but lacks necessary detail. Under-specification, not true conciseness, as it fails to provide useful 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?
Despite the presence of an output schema (not provided in input) and many sibling tools, the description explains nothing about return values, usage context, or differences from similar tools. Completely incomplete.
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 0% and the description adds no additional meaning beyond the schema's parameter names and types. It does not explain what 'data_source_id' or 'data_json' represent or how they should be used.
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?
Description states 'Update a data source', which is a clear verb+resource combination. However, it does not differentiate from sibling tools like 'default_update_block' or 'default_update_database', resulting in only moderate clarity.
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?
No guidance on when to use this tool versus alternatives, and no mention of any prerequisites or context. The description provides no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
default_update_pageC
[default] Update page properties
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| properties_json | No | ||
| icon_json | No | ||
| cover_json | No | ||
| archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Update page properties', which implies mutation but lacks details on side effects (e.g., archiving), permissions needed, or whether changes are reversible. This is insufficient for safe invocation.
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 sentence with no unnecessary words. While concise, it sacrifices informative content that could be included without bloating.
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 complexity of 5 parameters and no schema descriptions, the description is incomplete. It fails to explain the purpose of each property, the expected JSON structure, or the effect of the 'archived' flag. The presence of an output schema does not compensate for missing input guidance.
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 0%, so the description should clarify parameter semantics. However, it does not explain what each parameter (properties_json, icon_json, cover_json, archived) means or expects in terms of format. The agent must rely on parameter names, which is risky.
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 states the verb ('Update') and resource ('page properties'), making the tool's purpose evident. However, the '[default]' prefix adds noise and does not differentiate from siblings meaningfully, as the name already distinguishes it from create or retrieve page tools.
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?
No guidance is provided on when to use this tool versus alternatives like create_page (which also sets properties) or update_block. No context about prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_append_block_childrenD
[test] Append child blocks
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| children_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as mutability, authentication requirements, or side effects. The agent has no information beyond the tool's name.
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 phrase, which is underspecified for a tool with multiple required parameters. It lacks necessary detail, making it insufficient rather than concise.
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 two parameters, a test prefix, and no annotations or schema descriptions, the description fails to provide adequate context. The tool is unclear and incomplete for effective agent selection.
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 0%, and the description adds no meaning for the parameters. 'children_json' is a flexible type (string or array) with no format explanation, and 'block_id' is left entirely 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?
The description 'Append child blocks' gives a basic verb-resource pair, but it is vague and does not distinguish between test and default versions. The meaning of 'test' is unclear, and the scope of 'child blocks' is ambiguous.
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?
No guidance on when to use this tool versus alternatives like 'default_append_block_children'. The description provides no context for appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_create_commentC
[test] Create a comment
| Name | Required | Description | Default |
|---|---|---|---|
| rich_text_json | Yes | ||
| parent_json | No | ||
| discussion_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as destructive actions, permissions needed, or side effects. For a creation tool, this is a significant gap.
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 extremely short (one sentence), but it is under-specified. While concise, it lacks necessary detail and is not efficiently informative.
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 presence of an output schema and three parameters, the description is highly incomplete. It does not explain when to use the test version, what the output contains, or any relevant context.
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 0%, and the description adds no meaning to the three parameters (rich_text_json, parent_json, discussion_id). The description fails to compensate for the lack of parameter documentation.
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 'Create a comment' clearly states the action and resource, but it does not differentiate itself from the sibling tool 'default_create_comment'. The '[test]' prefix hints at a testing context but provides no further distinction.
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?
There is no guidance on when to use this tool versus alternatives. No mention of context, prerequisites, or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_create_databaseC
[test] Create a new database
| Name | Required | Description | Default |
|---|---|---|---|
| parent_json | Yes | ||
| title_json | Yes | ||
| properties_json | Yes | ||
| icon_json | No | ||
| cover_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. The description only states 'Create a new database', which implies a write operation but lacks details on permissions, side effects, or output format (despite an output schema existing). Minimal transparency.
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 extremely short (one phrase) but is under-specified rather than concise. It does not earn its place as it provides minimal value. A longer but more informative description would be preferred.
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 5 parameters with no descriptions, no usage guidance, and a complex operation (creating a database), the description is severely incomplete. The existence of an output schema is not leveraged. The tool's context is almost entirely missing.
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 0%, and the description does not explain any of the 5 parameters (e.g., parent_json, title_json). The agent has no insight into parameter meaning beyond their names, which are vague and potentially confusing (e.g., 'json' suffix but anyOf types).
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 'Create a new database' clearly states the verb and resource. It is not a tautology as it clarifies that the tool creates a database. However, it does not differentiate from the sibling 'default_create_database', missing that this is a test environment tool.
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?
No guidance on when to use this tool versus alternatives like 'default_create_database'. The description provides no context or exclusions, leaving the agent to guess when to invoke this test version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_create_pageD
[test] Create a new page
| Name | Required | Description | Default |
|---|---|---|---|
| parent_json | Yes | ||
| properties_json | Yes | ||
| children_json | No | ||
| icon_json | No | ||
| cover_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and minimal description, the tool fails to disclose any behavioral traits. Creating a page likely has side effects, requires authentication, and may have restrictions, but none of this is mentioned. The description does not inform the agent about safety, permissions, or outcomes.
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 extremely short (one sentence), but it sacrifices necessary detail. For a tool with 5 parameters and a test variant, this is under-specification, not conciseness. The structure lacks any breakdown or guidance.
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 complexity (5 parameters, no schema descriptions, no annotations, and presence of sibling test/default tools), the description is woefully incomplete. It does not explain return values, parameter usage, or the distinction from the default version. The agent cannot reliably use this tool based on the description alone.
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 input schema has 5 parameters with 0% description coverage, and the tool description provides no information about any parameter. The agent cannot understand the meaning or format of 'parent_json', 'properties_json', etc. This is a critical gap for a tool with required 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 'Create a new page' states the resource and action, but it is essentially a restatement of the tool name 'test_create_page'. It does not differentiate from siblings like 'default_create_page' which likely has the same description. The purpose is vague for distinguishing test vs default.
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?
No guidance is provided on when to use this tool versus siblings (e.g., 'default_create_page'). There is no mention of conditions, prerequisites, or alternatives. The agent is left to infer usage from the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_delete_blockC
[test] Delete a block
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the action without disclosing that this is a test tool, potential side effects, or permission requirements. Minimal behavioral context.
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 very short but underspecified. Conciseness should not come at the cost of completeness. Every sentence should add value; here it barely does.
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 tool's simplicity (1 param, output schema present), the description could still include prerequisites, effect of deletion, or test behavior. It lacks completeness even for a basic delete 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 0%, and the description adds no meaning beyond the schema's 'block_id' field. No explanation of how to obtain or format the block ID.
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 'Delete a block' clearly states the verb and resource. However, it does not differentiate from the sibling 'default_delete_block' tool, missing an opportunity to clarify that this is a test variant.
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?
No guidelines are provided on when to use this tool versus alternatives like 'default_delete_block'. The '[test]' prefix hints at a testing context but is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_get_block_childrenC
[test] List child blocks
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description offers no behavioral details beyond 'list'. Assumes read-only but fails to mention pagination, limits, or side effects.
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?
Extremely concise single sentence. While efficient, it lacks structure (e.g., bullet points) and omits important details. Balance between brevity and completeness is poor.
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?
Very incomplete given the tool has 3 parameters and no annotations. Lacks explanation of pagination, output schema reference, or behavioral expectations.
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 has 0% description coverage, and the description adds no explanation for block_id, start_cursor, or page_size. Parameters remain opaque.
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?
Description 'List child blocks' clearly states the action and resource. However, it does not differentiate from sibling 'default_get_block_children' or explain the '[test]' prefix.
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?
No guidance on when to use this test version versus the default version or alternatives. Missing context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_get_selfB
[test] Get bot user info
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose any behavioral traits such as read-only behavior, authentication requirements, or side effects.
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 sentence with a test prefix, concise but lacking structure. It is not verbose but could benefit from more informative structure.
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 tool with no parameters and an output schema, the description is somewhat complete. However, it lacks context about the return value and the test environment distinction.
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?
No parameters exist, so schema coverage is 100%. The description adds no param info, but that is acceptable given zero 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 clearly states it gets bot user info, with a test prefix distinguishing it from sibling default_get_self. However, it does not specify what 'bot user info' includes.
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?
No guidance on when to use this tool versus default_get_self or other similar tools. A brief note about test environment usage would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_list_data_source_templatesC
[test] List data source templates
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. 'List' implies a read operation, but there is no information about permissions, side effects, rate limits, or return behavior. This is insufficient for confident invocation.
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 sentence, which is concise but severely under-specified. It lacks critical information that could be added without length inflation (e.g., clarifying the parameter).
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?
Despite having one parameter and an output schema, the description provides no details about the output or usage context. It is too minimal to be practically useful for an AI 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?
Schema description coverage is 0%, meaning the schema provides no explanation for the 'data_source_id' parameter. The description does not add any meaning or guidance about what this parameter represents or how to obtain it.
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 states the action ('List') and resource ('data source templates'). It is specific, though it does not differentiate from the sibling 'default_list_data_source_templates' which has identical wording except for the '[test]' prefix.
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?
No guidance is provided on when to use this tool versus alternatives like 'default_list_data_source_templates'. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_move_pageC
[test] Move a page to a new parent
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| new_parent_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as destructiveness, reversibility, permissions, side effects, or return behavior.
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 sentence, which is concise but under-specifies. It earns its place structurally but lacks depth.
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 tool with no annotations, incomplete parameter documentation, and a minimal description, the information provided is insufficient for an agent to confidently use this 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 0% and the description does not explain the purpose or format of 'page_id' or 'new_parent_json'. The meaning of these parameters is left entirely to inference.
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 states the action (move a page) and the target resource (parent). The '[test]' prefix indicates a testing variant, differentiating it from the non-test sibling.
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?
No guidance on when to use this test version versus the default_move_page or other sibling tools. No mention of prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_query_databaseC
[test] Query database contents (use data_source_id, not database_id)
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes | ||
| filter_json | No | ||
| sorts_json | No | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the action and a parameter hint, but does not mention read/write nature, pagination, or any other behavioral traits. The existence of an output schema is not referenced.
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 extremely short (one sentence), which is concise but under-specified for a 5-parameter tool. It is front-loaded with the purpose, but lacks necessary detail to be fully useful.
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 tool's complexity (5 parameters, 0% schema coverage, no annotations), the description is far from complete. It does not explain return values (despite output schema existing), pagination, or any other context needed for correct invocation.
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 0% schema description coverage, the description must compensate. It only addresses one parameter (data_source_id) by noting its usage, ignoring filter_json, sorts_json, start_cursor, and page_size entirely. This adds minimal value beyond the schema structure.
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 states 'Query database contents', a specific verb and resource. It also hints at the correct parameter to use, distinguishing from a potential misuse of 'database_id'. However, it does not explicitly differentiate from sibling tools like default_query_database or test_query_data_source.
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 provides no guidance on when to use this tool vs alternatives. With many sibling tools (e.g., default_query_database, test_query_data_source), an agent would lack context for selection. The only usage hint is about the parameter name, not tool choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_query_data_sourceD
[test] Query a data source
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes | ||
| filter_json | No | ||
| sorts_json | No | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'query' with no behavioral info (e.g., read-only, side effects, pagination behavior). Schema shows pagination params but description does not elaborate.
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?
Extremely short but under-specified. Conciseness sacrifices essential details; the description is merely a label.
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 5 parameters and an output schema (not described), the description is woefully incomplete. No info on output format, data source context, or how to craft filter/sort JSON.
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 0%, meaning no descriptions in schema properties. The description does not explain any parameters (data_source_id, filter, sorts, cursors, page_size), failing to add value beyond 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?
The description '[test] Query a data source' provides a vague verb+resource but lacks specificity to distinguish from sibling tools like default_query_data_source or test_query_database. The '[test]' prefix hints at testing but no further context.
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?
No guidance on when to use this test variant vs default query or other query tools. No context for appropriate use cases or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_retrieve_blockC
[test] Get block information
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It only states 'Get block information', which implies a read operation but does not explicitly confirm no side effects, destructive actions, or any other behavioral traits beyond the basic retrieval.
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 very short and direct, which is concise, but it lacks essential details such as parameter context or usage hints. It is not overly verbose, but the brevity comes at the cost of completeness.
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?
Considering the single parameter, no annotations, and the presence of an output schema, the description is incomplete. It does not explain what 'block information' includes, any prerequisites, or how the tool fits into the broader API workflow.
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 has 0% parameter description coverage, and the description does not add any meaning to the single 'block_id' parameter beyond its name. No format, source, or constraints are mentioned, limiting the agent's understanding of how to use the parameter correctly.
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 uses a clear verb 'Get' and specifies 'block information', which indicates the tool retrieves block details. However, it does not differentiate this test version from the non-test sibling 'default_retrieve_block', missing an opportunity to clarify the context.
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 provides no guidance on when to use this tool versus alternatives. It simply states the function without any context, exclusions, or comparison to sibling tools like 'default_retrieve_block' or other retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_retrieve_commentsC
[test] List comments
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency. It only says 'List comments', which implies a read operation, but does not confirm safety (no destructive behavior stated). It does not disclose pagination behavior or that it requires a block_id. The description provides minimal behavioral context.
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 extremely concise (3 words), but it is under-specified. It lacks essential details needed for correct usage. Conciseness should be balanced with completeness; here it sacrifices too much 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?
Despite having an output schema and only 3 parameters (1 required), the description fails to provide complete context. It does not explain what 'comments' are, how they relate to blocks, or how pagination works. The agent would need to rely on parameter names and output schema alone, which may be insufficient.
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 0%, so the description should explain parameter meanings. It does not describe block_id (required), start_cursor (pagination), or page_size (result limit). The parameter names are somewhat self-explanatory but lack explicit clarification. The description adds no semantic value beyond 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?
The description states 'List comments', which is a clear verb+resource. It matches the tool name 'retrieve_comments' and indicates the action. However, it does not specify that comments are associated with a block (implied by required block_id parameter). It distinguishes from sibling tools that perform other actions (create, update, delete) or retrieve different resources.
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?
No guidance is provided on when to use this tool vs alternatives like test_create_comment or test_retrieve_block. There is no mention of prerequisites (e.g., needing a block_id), nor any context about use cases. The agent must infer usage from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_retrieve_databaseC
[test] Get database schema
| Name | Required | Description | Default |
|---|---|---|---|
| database_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the high-level action. It does not explain whether this is a read-only operation, what the 'schema' includes, or any side effects. The lack of transparency is a significant gap.
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 sentence, which is concise and front-loaded. However, it is too minimal, sacrificing necessary detail for brevity. While it earns points for conciseness, it is not optimally structured for information density.
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 that the tool has an output schema, the description does not need to explain return values. However, for a retrieve operation with one parameter, the description should provide more context about what 'database schema' entails (e.g., structure, tables, fields). The current description is incomplete and vague.
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 0%, meaning the input schema provides no documentation for the database_id parameter. The description also adds no additional meaning, relying on the parameter name to be self-explanatory. The description fails to compensate for the schema's lack of detail.
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 'Get database schema' clearly states the action and resource. It is specific enough to understand the tool's purpose, but it does not distinguish it from sibling tools like default_retrieve_database, which may perform a similar function.
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?
No usage guidance is provided. The description does not indicate when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. This leaves the agent without context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_retrieve_data_sourceC
[test] Get data source info
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only indicates a read operation ('Get data source info'), but offers no details about potential side effects, authentication needs, or rate limits. The brevity leaves agents guessing about the tool's behavior beyond the obvious read.
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 extremely concise at one sentence, but it lacks crucial information. Conciseness should not sacrifice completeness; here the tool is underspecified, making it less helpful for an AI agent.
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 tool's simplicity (one parameter, output schema exists), the description should at least clarify what 'data source info' entails and how to use the parameter. The current wording is insufficient for an agent to confidently invoke the 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?
The input schema has one parameter 'data_source_id' with no description, and schema description coverage is 0%. The description does not explain the parameter's meaning or expected format, failing to compensate for the missing schema documentation.
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 'Get data source info', which is a clear verb+resource combination. However, it does not distinguish this tool from its sibling 'default_retrieve_data_source', which likely serves a similar purpose. The '[test]' prefix hints at a testing variant but lacks explicit differentiation.
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?
No usage guidelines are provided. The description gives no indication of when to use this tool over alternatives, such as 'default_retrieve_data_source', nor does it mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_retrieve_pageC
[test] Get page information
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description gives only minimal behavior ('get page information'). It does not disclose read-only nature, side effects, or output structure.
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 extremely short (one sentence), but it is under-specified and lacks substantive details. It is not an effective use of brevity.
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 tool has one parameter and an output schema, the description should at least clarify what 'page information' includes. It is too minimal to be 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 parameter 'page_id' is required but has no description in the schema or the tool description. Schema description coverage is 0%, and the description adds no parameter semantics.
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 states the tool retrieves page information, but it does not differentiate from the sibling tool 'default_retrieve_page' which likely performs the same function.
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?
No guidance on when to use this test tool versus the default version or other retrieve tools. The '[test]' prefix hints at non-production use but is not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_retrieve_page_propertyC
[test] Get a specific page property
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| property_id | Yes | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure, yet it only states the basic operation. It fails to mention pagination behavior (start_cursor, page_size) or whether the tool supports filtering or has rate limits.
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 extremely concise (one sentence), but it sacrifices necessary detail. For a tool with four parameters and a test variant, the brevity is insufficient, making it not optimally structured.
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 presence of pagination parameters, a test variant sibling, and an output schema (not detailed), the description is far from complete. It does not address output format, differences from the default version, or any limitations, leading to a significant knowledge gap for the 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?
Schema description coverage is 0%, meaning the input schema provides no documentation for the parameters, and the tool description adds no information about what page_id, property_id, start_cursor, or page_size represent or how they should be used.
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 'Get a specific page property' is a clear verb+resource, but it does not explain the purpose of the '[test]' prefix or differentiate this tool from the sibling default_retrieve_page_property. The agent lacks context on whether this is a sandboxed or experimental version.
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?
No guidance is provided on when to use this tool versus the default variant or other test tools. The description gives no context about prerequisites, typical use cases, or scenarios to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_searchC
[test] Search pages and databases
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| filter_json | No | ||
| sort_json | No | ||
| start_cursor | No | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, pagination behavior, or error handling. The description is too brief to inform about side effects or limitations.
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 very short, which could be considered concise, but it lacks critical information. It is not front-loaded with essential details.
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 tool has 5 parameters with no schema descriptions and no explanations in the text, the description is severely incomplete. The presence of an output schema does not compensate for the lack of parameter info.
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 0%, and the description does not explain any of the five parameters. The agent would have no understanding of what query, filter_json, sort_json, start_cursor, or page_size do.
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 the tool searches pages and databases, which is clear. However, it does not differentiate from the sibling tool 'default_search' which likely has similar functionality, missing a chance to clarify the test nature.
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?
No guidance on when to use this tool versus alternatives like default_search. No prerequisites, context, or examples are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_update_blockD
[test] Update a block
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | ||
| block_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only says 'Update a block'. Does not disclose any behavioral traits such as side effects, authorization needs, or what the update entails. Fails to compensate for missing 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?
The description is extremely short, but it is under-specified rather than concise. It lacks essential information for effective use.
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 tool is a mutation with two parameters and an output schema, the description fails to provide any meaningful context. It does not explain what a block is, what updating means, or how to use the parameters.
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 0%, and description adds no meaning to the parameters 'block_id' and 'block_json'. No explanation of their format or role.
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?
Description is '[test] Update a block', which essentially restates the tool name. It does not specify the type of block or distinguish from sibling 'default_update_block'. Minimal purpose clarity.
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?
No guidance on when or when not to use this tool versus alternatives like 'default_update_block'. No context provided for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_update_databaseC
[test] Update database properties
| Name | Required | Description | Default |
|---|---|---|---|
| database_id | Yes | ||
| title_json | No | ||
| properties_json | No | ||
| icon_json | No | ||
| cover_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only states 'Update database properties' without indicating whether the update is destructive, what side effects occur, or any permissions 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?
The description is very concise (one sentence) and front-loaded, but it sacrifices completeness. It is not overly verbose, but could be slightly expanded to provide meaningful guidance without becoming too long.
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 tool has 5 parameters, is a mutation, and lacks annotations, the description is too sparse. It does not cover usage context, parameter formats, or behavioral expectations, making it insufficient for effective agent use.
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 0%, yet the description adds no parameter-level details. The parameters like title_json and properties_json are not explained in terms of expected format or constraints, forcing the agent to rely on the schema alone.
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 states the tool updates database properties, and the name specifies it's the test variant. It distinguishes from siblings like test_update_page or test_update_block by targeting a different resource.
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?
No guidance is provided on when to use this tool versus its default counterpart or alternatives. There is no mention of prerequisites, such as requiring a database_id, or situations where this tool should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_update_data_sourceD
[test] Update a data source
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes | ||
| data_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it merely says 'Update a data source'. It does not mention destructive nature, permissions, rate limits, or any side effects. This is insufficient for safe invocation.
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 sentence, which is concise but lacks necessary detail. It is under-specification rather than efficient; every word should add value, but here it fails to inform the agent adequately.
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 tool has two required parameters, no annotations, and low schema coverage, the description is highly incomplete. It does not explain return values (though an output schema exists), nor provide any usage context. The agent cannot use this tool effectively.
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 0%, so the description should explain parameter meanings. It provides no additional meaning beyond the schema's parameter names and types. The parameters 'data_source_id' and 'data_json' remain ambiguous.
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 the tool updates a data source, which is a specific verb+resource. However, it does not differentiate from the sibling 'default_update_data_source' tool, and the '[test]' prefix is unclear about its purpose. A higher score would require mentioning filtering or scope.
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?
No guidance on when to use this tool versus alternatives like 'default_update_data_source' or other update tools. Lacks context about prerequisites or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_update_pageC
[test] Update page properties
| Name | Required | Description | Default |
|---|---|---|---|
| page_id | Yes | ||
| properties_json | No | ||
| icon_json | No | ||
| cover_json | No | ||
| archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Update page properties', which does not indicate side effects, permissions needed, or that the tool can archive pages (based on the 'archived' parameter).
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 extremely brief (one sentence), but it sacrifices necessary detail. It is under-specified rather than concise.
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 complexity of 5 parameters and the presence of an output schema, the description is completely inadequate. It fails to explain return values or why one would use this 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 0%, and the description adds no meaning to the five parameters (page_id, properties_json, icon_json, cover_json, archived). It fails to clarify what each parameter does.
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 'Update page properties' clearly states a verb and resource, but it is vague about what 'properties' entails and does not differentiate from sibling tools like 'test_update_block' or 'default_update_page'.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The tools are duplicated with `default_` and `test_` prefixes, creating two identical sets. An agent cannot easily distinguish which set to use, leading to potential misselection. Within each set, tools are distinct, but the overlap across sets causes ambiguity.
The naming pattern is mostly verb_noun but the prefix system is inconsistent: `default_` vs `test_` for the same operations. Additionally, there is a mix of `get` and `retrieve` verbs (e.g., `get_block_children` vs `retrieve_block`), breaking consistency.
With 44 tools, the count is too high for the server's purpose. The duplication of 22 tools for default and test environments inflates the count unnecessarily. A single set of ~22 tools would be more appropriate.
The tool surface covers many Notion operations (blocks, pages, databases, comments, data sources), but some gaps exist: no delete for pages or databases, no update for comments. The coverage is decent but not fully complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that integrates with Discord to provide AI-powered features.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseAqualityDmaintenanceA high-performance MCP server that integrates Notion into AI workflows, enabling interaction with Notion pages, databases, and comments through a standardized protocol.85127Apache 2.0
- AlicenseAqualityAmaintenanceNotion MCP Server is a MCP server implementation that enables AI assistants to interact with Notion's API.2991168MIT

Notion MCP Serverofficial
AlicenseBqualityCmaintenanceAn MCP server that enables AI assistants to interact with the Notion API, allowing them to search, read, comment on, and create content in Notion workspaces through natural language commands.19172,2124,615MIT- AlicenseAqualityCmaintenanceAn MCP server for Notion API with optimized token efficiency and full database property filtering, enabling AI assistants to manage pages, databases, and blocks.32381MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kerwin77106/Notion-Multi-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server