Skip to main content
Glama

Notion ReadOnly MCP 服务器

该项目为 Notion API 实现了优化的只读 MCP 服务器,专注于 AI 助手查询和检索 Notion 内容的性能和效率。

关键改进

  • 只读设计:专注于数据检索操作,确保安全访问 Notion 内容。

  • 最小化工具集:将公开的 Notion API 工具数量从 15+ 个减少到仅 6 个用于文档分析的必需工具。

  • 并行处理:通过实现异步和并行 API 请求来检索块内容,从而增强性能,显著缩短响应时间。

  • 扩展数据库访问:增加了对数据库、页面属性和评论检索操作的支持。

  • 针对 AI 助手进行了优化:大幅减少工具数量,解决了 Cursor 等 AI 助手中“太多工具会降低性能”的问题,该问题将模型限制为大约 40 种工具。

Related MCP server: notion-slim

工具比较

与标准 Notion API 集成相比,此只读实现公开的工具要少得多,从而提高了性能和与 AI 助手的兼容性:

Notion API 工具比较

精简的工具集有助于保持在建议的工具限制内,以实现最佳的 AI 助手性能,同时仍提供所有必需的功能。

安装

1.在Notion中设置集成:

转到https://www.notion.so/profile/integrations并创建一个新的内部集成或选择一个现有的集成。

创建 Notion Integration 代币

虽然我们限制了 Notion API 的只读操作范围,但将工作区数据暴露给 LLM 仍会带来不小的风险。注重安全的用户可能需要进一步配置集成的功能

例如,您可以通过从“配置”选项卡仅授予“读取内容”访问权限来创建只读集成令牌:

Notion Integration Token 功能显示已检查阅读内容

2. 将 MCP 配置添加到您的客户端:

使用 npm:

将以下内容添加到您的.cursor/mcp.jsonclaude_desktop_config.json (MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "notion-readonly-mcp-server"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
      }
    }
  }
}

使用 Docker:

将以下内容添加到您的.cursor/mcp.jsonclaude_desktop_config.json

{
  "mcpServers": {
    "notionApi": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "OPENAPI_MCP_HEADERS",
        "taewoong1378/notion-readonly-mcp-server"
      ],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer ntn_****\",\"Notion-Version\":\"2022-06-28\"}"
      }
    }
  }
}

别忘了将ntn_****替换成你的集成密钥。你可以在集成配置选项卡中找到它。

3. 将内容与集成连接起来:

确保相关页面和数据库已连接到您的集成。

为此,请访问该页面,单击 3 个点,然后选择“连接到集成”。

将集成令牌添加到 Notion 连接

可用工具

该优化服务器仅公开必要的只读 Notion API 工具:

  • API-retrieve-a-page :获取页面信息

  • API-get-block-children :获取页面内容块(并行处理)

  • API-retrieve-a-block :获取特定区块的详细信息

  • API-retrieve-a-database :获取数据库信息

  • API-retrieve-a-comment :获取页面或区块上的评论

  • API-retrieve-a-page-property :从页面获取特定属性信息

  • API-get-one-pager**新功能!**只需一次调用即可递归检索包含所有区块、数据库和相关内容的完整 Notion 页面

通过限制这 7 种基本工具(相比标准实施中的 15 种以上),我们确保:

  1. 在 Cursor 和 Claude 等具有工具数量限制的 AI 助手中表现更佳

  2. 选择合适的工具时减少人工智能模型的认知负荷

  3. 响应时间更快,需要考虑的 API 选项更少

  4. 通过最小化 API 表面积来增强安全性

自动内容探索

新的API-get-one-pager工具提供了一种强大的方法来探索 Notion 页面,而无需多次 API 调用:

  • 递归检索:自动遍历整个页面结构,包括嵌套块

  • 并行处理:同时获取多个块及其子块以实现最佳性能

  • 智能缓存:存储检索到的数据以最大限度地减少冗余 API 调用

  • 全面的内容:包括页面、块、数据库、评论和详细的属性信息

  • 可定制的深度:控制递归级别以在细节和性能之间取得平衡

使用单页工具

{
  "page_id": "YOUR_PAGE_ID",
  "maxDepth": 5,               // Optional: Maximum recursion depth (default: 5)
  "includeDatabases": true,    // Optional: Include linked databases (default: true)
  "includeComments": true,     // Optional: Include comments (default: true)
  "includeProperties": true    // Optional: Include detailed page properties (default: true)
}

这种自动探索功能对于需要了解 Notion 页面全部内容而无需进行数十次单独的 API 调用的 AI 助手特别有用,从而实现更快、更高效的响应。

异步处理

该服务器实现了先进的并行处理技术来处理大型 Notion 文档:

  • 多个请求被批量处理并同时处理

  • 自动为块子项处理分页

  • 结果在返回之前被有效地聚合

  • 控制台日志记录提供了对流程的可见性,而不会影响响应格式

示例

  1. 使用以下指令:

Get the content of page 1a6b35e6e67f802fa7e1d27686f017f2

人工智能将通过并行处理块内容来有效地检索页面详细信息。

  1. 使用数据库信息:

Get the structure of database 8a6b35e6e67f802fa7e1d27686f017f2

发展

建造:

pnpm build

执行:

pnpm dev

执照

麻省理工学院

AI助手性能优势

Cursor 和 Claude 等现代人工智能助手在有效处理的工具数量上存在限制:

  • 大多数模型可能不会考虑超过 40 种工具

  • 太多工具会降低整体性能和推理能力

  • 复杂的工具集增加了响应延迟和决策难度

此只读实现刻意减少了 Notion API 接口,以解决这些限制,同时保留所有基本功能。其结果是:

  • 人工智能助手的响应更快、更可靠

  • 提高与 Notion 内容交互时的准确性

  • 通过有针对性的 API 设计提高整体性能

Available Tools

8 tools
API-get-background-resultC

Retrieve the result of a background processing request

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesIdentifier for the Notion page that was processed in background

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a retrieval operation, implying it's likely read-only, but doesn't clarify authentication needs, rate limits, error conditions, or what happens if the background processing isn't complete. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with zero waste. It's appropriately sized and front-loaded, efficiently conveying the core purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the result contains (e.g., status, data, errors), how to handle pending processing, or any dependencies. For a tool that retrieves background processing results, this leaves critical context gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'page_id' documented as 'Identifier for the Notion page that was processed in background'. The description adds no additional meaning beyond this, such as format examples or constraints, so it meets the baseline of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieve') and resource ('result of a background processing request'), making the purpose understandable. However, it doesn't differentiate this tool from its siblings (like API-retrieve-a-page or API-retrieve-a-database), which also retrieve data but for different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 doesn't mention prerequisites (e.g., that a background processing request must have been initiated first) or compare it to sibling tools that retrieve other types of data, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

API-get-block-childrenC

Retrieve block children

ParametersJSON Schema
NameRequiredDescriptionDefault
block_idYesIdentifier for a [block](ref:block)
start_cursorNoIf supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.
page_sizeNoThe number of items from the full list desired in the response. Maximum: 100

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Retrieve' implies a read-only operation, but it does not specify critical traits like pagination behavior (implied by 'start_cursor' and 'page_size' in the schema), rate limits, authentication needs, or error handling. The description adds minimal context beyond the basic action, leaving gaps in understanding how the tool behaves in practice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description 'Retrieve block children' is extremely concise—just three words—and front-loaded with the core action. There is no wasted language or unnecessary elaboration, making it efficient for quick comprehension. Every word earns its place by directly stating the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a paginated retrieval tool with no annotations and no output schema, the description is incomplete. It does not explain what 'block children' are, the return format, pagination details, or error conditions. While the schema covers inputs, the lack of behavioral and output information makes it inadequate for an agent to use the tool effectively without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning the input schema fully documents all parameters ('block_id', 'start_cursor', 'page_size') with clear descriptions. The description does not add any meaning beyond this, such as explaining relationships between parameters or usage examples. According to the rules, with high schema coverage, the baseline score is 3, as the description does not compensate but also does not detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve block children' states the verb ('Retrieve') and resource ('block children'), making the purpose clear. However, it lacks specificity about what 'block children' are (e.g., nested content in a Notion-like system) and does not differentiate from sibling tools like 'API-retrieve-a-block', which might retrieve a single block rather than its children. This vagueness prevents a higher score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 does not mention sibling tools such as 'API-retrieve-a-block' or 'API-retrieve-a-page', nor does it specify contexts like fetching hierarchical content. Without any usage context or exclusions, the agent must infer when to apply it, leading to potential misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

API-get-one-pagerB

Recursively retrieve a full Notion page with all its blocks, databases, and related content

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesIdentifier for a Notion page
maxDepthNoMaximum recursion depth (default: 5)
includeDatabasesNoWhether to include linked databases (default: true)
includeCommentsNoWhether to include comments (default: true)
includePropertiesNoWhether to include detailed page properties (default: true)
maxParallelRequestsNoMaximum number of parallel requests (default: 15)
batchSizeNoBatch size for parallel processing (default: 10)
timeoutMsNoTimeout in milliseconds (default: 300000)
runInBackgroundNoProcess request in background without timeout (default: true)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions recursion and content inclusion but lacks details on performance implications, error handling, rate limits, authentication needs, or what the output looks like. For a complex tool with 9 parameters, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It directly communicates the tool's function, making it highly concise and well-structured for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, no annotations, no output schema), the description is insufficient. It lacks information on output format, error conditions, performance trade-offs, and when to use alternatives, leaving the agent with incomplete context for effective tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional parameter semantics beyond implying recursion and content scope, which is already covered by parameter names like 'maxDepth' and 'includeDatabases'. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('recursively retrieve') and the resource ('full Notion page with all its blocks, databases, and related content'), making the purpose specific and unambiguous. It distinguishes from siblings like 'API-retrieve-a-page' by emphasizing the comprehensive, recursive nature of the retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 does not mention any prerequisites, exclusions, or compare it to sibling tools like 'API-retrieve-a-page' for simpler needs or 'API-get-background-result' for background processing, leaving the agent without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

API-retrieve-a-blockC

Retrieve a block

ParametersJSON Schema
NameRequiredDescriptionDefault
block_idYesIdentifier for a Notion block

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but fails to add any meaningful context. It doesn't specify whether this is a read-only operation, what permissions are required, potential rate limits, error conditions, or the format of returned data. The description is too minimal to provide useful behavioral insights beyond the basic action implied by 'retrieve'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just two words ('Retrieve a block'), with zero wasted language. It's front-loaded with the core action, though this brevity comes at the cost of completeness. Every word serves a purpose in stating the basic function, making it structurally efficient despite its limitations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what 'retrieve' entails (e.g., returns block content, metadata, or both), how it differs from sibling tools, or any behavioral aspects. For a retrieval tool in a family of similar tools, more context is needed to guide proper usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'block_id' clearly documented as 'Identifier for a Notion block' in the schema. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline score of 3 for adequate coverage when the schema handles parameter documentation effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve a block' is a tautology that essentially restates the tool name 'API-retrieve-a-block', providing no additional specificity. It mentions the verb 'retrieve' and resource 'block', but doesn't distinguish what kind of block (Notion block is only implied by the parameter description in the schema) or what information is retrieved, making it vague compared to more specific alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 sibling tools like 'API-retrieve-a-page', 'API-retrieve-a-database', or 'API-get-block-children'. There's no mention of prerequisites, alternatives, or contextual constraints, leaving the agent with no usage direction beyond the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

API-retrieve-a-commentC

Retrieve comments

ParametersJSON Schema
NameRequiredDescriptionDefault
block_idYesIdentifier for a Notion block or page
start_cursorNoIf supplied, this endpoint will return a page of results starting after the cursor provided. If not supplied, this endpoint will return the first page of results.
page_sizeNoThe number of items from the full list desired in the response. Maximum: 100

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Retrieve comments' implies a read-only operation, but it doesn't specify authentication needs, rate limits, error handling, or pagination behavior. The description lacks details on what 'retrieve' entails, such as whether it returns all comments or supports filtering, leaving behavioral traits unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with 'Retrieve comments', which is front-loaded and wastes no words. However, it may be overly brief, risking under-specification. For a tool with three parameters and no annotations, more detail could be beneficial, but the current form is structurally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return values, error cases, or operational context. For a retrieval tool in a Notion API context, more information on what 'comments' are and how they relate to 'block_id' would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear documentation for 'block_id', 'start_cursor', and 'page_size'. The description adds no parameter-specific information beyond the schema. Since the schema is comprehensive, a baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract from the schema's clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve comments' restates the tool name with minimal elaboration. It specifies the action ('retrieve') and resource ('comments'), but lacks detail about scope or context, making it vague. Compared to siblings like 'API-retrieve-a-block' or 'API-retrieve-a-page', it doesn't clearly differentiate what makes retrieving comments unique, beyond the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The description doesn't mention prerequisites, context, or exclusions. Given siblings like 'API-get-block-children' that might overlap in functionality, the absence of usage guidelines leaves the agent without direction on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

API-retrieve-a-databaseC

Retrieve a database

ParametersJSON Schema
NameRequiredDescriptionDefault
database_idYesAn identifier for the Notion database.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action ('Retrieve') without detailing aspects like authentication requirements, rate limits, error handling, or what the retrieval entails (e.g., read-only operation, data format returned). This leaves significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just two words, making it front-loaded and free of unnecessary information. Every word earns its place, though this brevity contributes to gaps in other dimensions like purpose clarity and guidelines.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for a retrieval tool. It fails to explain what is retrieved (e.g., database properties, schema, content), potential side effects, or response format, leaving the agent with insufficient context to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'database_id' clearly documented as 'An identifier for the Notion database.' The description adds no additional semantic context beyond this, so it meets the baseline score of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve a database' is a tautology that essentially restates the tool name 'API-retrieve-a-database' without adding meaningful specificity. While it indicates a retrieval action on a database resource, it lacks details about what exactly is retrieved (structure, content, metadata) and doesn't differentiate from sibling tools like 'API-retrieve-a-page' or 'API-retrieve-a-block' beyond the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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. There are no explicit instructions, prerequisites, or comparisons to sibling tools (e.g., when to retrieve a database vs. a page or block), leaving the agent with no contextual cues for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

API-retrieve-a-pageC

Retrieve a page

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesIdentifier for a Notion page
filter_propertiesNoA list of page property value IDs associated with the page. Use this param to limit the response to a specific page property value or values. To retrieve multiple properties, specify each page property ID. For example: `?filter_properties=iAk8&filter_properties=b7dh`.

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Retrieve a page' implies a read-only operation but doesn't specify authentication requirements, rate limits, error handling, or what the response contains. For a tool with no annotation coverage, this is a significant gap in 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just two words, 'Retrieve a page', which is front-loaded and wastes no space. While under-specified in content, it earns full marks for brevity and structure as every word contributes directly to the core purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a retrieval tool with 2 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what a 'page' is in context (Notion), how results are returned, or any behavioral aspects. The agent lacks sufficient context to use this tool effectively beyond basic parameter passing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with both parameters ('page_id' and 'filter_properties') fully documented in the input schema. The description adds no additional parameter information beyond what the schema provides, so it meets the baseline score of 3 for adequate coverage when the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve a page' is a tautology that essentially restates the tool name 'API-retrieve-a-page'. It doesn't specify what kind of page (Notion page) or provide any distinguishing context from sibling tools like 'API-retrieve-a-database' or 'API-retrieve-a-block'. The purpose is minimally stated but lacks specificity and differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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. With sibling tools like 'API-retrieve-a-database' and 'API-retrieve-a-block', the description offers no context about when this tool is appropriate, what prerequisites exist, or when other tools might be better suited. This leaves the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

API-retrieve-a-page-propertyC

Retrieve a page property item

ParametersJSON Schema
NameRequiredDescriptionDefault
page_idYesIdentifier for a Notion page
property_idYesIdentifier for a page [property](https://developers.notion.com/reference/page#all-property-values)
page_sizeNoFor paginated properties. The max number of property item objects on a page. The default size is 100
start_cursorNoFor paginated properties.

TDQS

C2.7/5.0
Behavior2/5

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 the action ('retrieve') without disclosing behavioral traits such as authentication needs, rate limits, error handling, or what 'retrieve' entails operationally (e.g., read-only, data format). This leaves significant gaps for a tool with 4 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, making it easy to parse without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a tool with 4 parameters, the description is incomplete. It fails to address key aspects like return values, error cases, or operational context, making it inadequate for effective tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no meaning beyond the schema, as it doesn't explain parameter relationships or usage context. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve a page property item' states the action (retrieve) and target (page property item), which is clear but vague. It doesn't specify what a 'property item' entails or differentiate from siblings like 'API-retrieve-a-page' or 'API-retrieve-a-database', leaving ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'API-retrieve-a-page' and 'API-retrieve-a-database', the description lacks context for choosing this specific retrieval tool, offering no explicit or implied usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updates
    • First observedAPI-get-background-result
    • First observedAPI-get-block-children
    • First observedAPI-get-one-pager
    • First observedAPI-retrieve-a-block
    • First observedAPI-retrieve-a-comment
    • First observedAPI-retrieve-a-database
    • First observedAPI-retrieve-a-page
    • First observedAPI-retrieve-a-page-property

TDQS

C2.9/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific Notion resources (blocks, pages, databases, comments, properties), but 'API-retrieve-a-block' and 'API-get-block-children' could cause confusion as both relate to blocks with overlapping retrieval functions. The descriptions help clarify, but the boundary isn't perfectly clear.

Naming Consistency3/5

The naming follows a mostly consistent 'API-[verb]-a-[noun]' pattern for seven tools, but 'API-get-background-result' and 'API-get-one-pager' deviate with different verb structures ('get' vs 'retrieve') and compound nouns. This mixed convention reduces predictability, though the names remain readable.

Tool Count5/5

With 8 tools, the count is well-scoped for a read-only Notion server, covering key retrieval operations without bloat. Each tool serves a clear purpose, making the set manageable and focused on the server's stated functionality.

Completeness4/5

For a read-only server, the tool set provides comprehensive coverage of Notion's core resources (pages, blocks, databases, comments, properties) and includes useful utilities like background result retrieval. A minor gap exists in lacking a tool for listing/searching across multiple resources, but agents can work around this with the available retrieval tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A token-optimized MCP server for Notion that reduces context window usage by 73% while preserving full functionality, enabling AI assistants to interact with Notion efficiently.
    18 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A lightweight, read-only MCP server for Notion that enables searching, reading pages, and querying databases with token-efficient output and smart caching.
    25 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Fast, read-only MCP server for Notion that reads directly from local SQLite cache, enabling instant access to Notion pages, databases, and users without API calls or rate limits.
    1
    MIT