内容
# Notion ReadOnly MCP Server
该项目实现了一个针对 Notion API 的优化只读 MCP 服务器,专注于提高 AI 助手查询和检索 Notion 内容的性能和效率。
## 关键改进
- **只读设计**:专注于数据检索操作,确保安全访问 Notion 内容。
- **最小化工具集**:将暴露的 Notion API 工具减少到仅用于文档分析的必要工具。
- **并行处理**:通过实现异步和并行 API 请求来增强性能,以检索块内容,显著减少响应时间。
- **扩展数据库访问**:增加对数据库、页面属性和评论检索操作的支持。
## 安装
### 1. 在 Notion 中设置集成:
访问 https://www.notion.so/profile/integrations 并创建一个新的 **internal** 集成或选择一个现有的集成。

虽然我们限制了 Notion API 暴露的只读操作范围,但将其暴露给 LLM(大型语言模型)仍存在一定风险。注重安全的用户可能希望进一步配置集成的 _Capabilities_。
例如,您可以通过在“Configuration”选项卡中仅授予“Read content”访问权限来创建一个只读集成令牌:

### 2. 将 MCP 配置添加到您的客户端:
#### 使用 npm:
将以下内容添加到您的 `.cursor/mcp.json` 或 `claude_desktop_config.json`(MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`)
```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.json` 或 `claude_desktop_config.json`:
```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. 将内容连接到集成:
确保相关页面和数据库已连接到您的集成。
为此,请访问页面,点击三个点,然后选择“Connect to integration”。

## 可用工具
该优化服务器仅暴露必要的只读 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`:获取页面中特定属性的信息
## 异步处理
该服务器实现了先进的并行处理技术,以处理大型 Notion 文档:
- 多个请求被批量处理并同时进行
- 块子项的分页自动处理
- 结果在返回之前高效聚合
- 控制台日志记录提供了过程的可见性,而不影响响应格式
## 示例
1. 使用以下指令:
```
Get the content of page 1a6b35e6e67f802fa7e1d27686f017f2
```
AI 将高效地检索页面详细信息,并并行处理块内容。
2. 使用数据库信息:
```
Get the structure of database 8a6b35e6e67f802fa7e1d27686f017f2
```
## 开发
构建:
```
pnpm build
```
执行:
```
pnpm dev
```
## 许可证
MIT