mcpField
N
Notion MCP Server

Notion MCP Server

本地服务
github.com/ccabanillas记忆与知识11170 周前更新

关于 Notion MCP Server

Notion MCP Server 是一个为 Notion API 提供标准化接口的 MCP 服务,兼容 Claude Desktop 等 MCP 客户端。适合希望让 AI 助手读取和修改 Notion 工作区内容的用户,基于 httpx 异步实现并使用 Pydantic v2 模型。

主要功能

  1. 01查询 Notion 数据库及其详情
  2. 02创建和更新页面
  3. 03搜索 Notion 工作区内容
  4. 04获取数据库的子块内容
  5. 05基于 httpx 的异步实现
  6. 06使用 Pydantic v2 进行类型校验

适用场景

  1. 01让助手在 Notion 数据库中查询记录
  2. 02通过助手创建或更新 Notion 页面
  3. 03在工作区内搜索页面与数据库

MCP 相关

该项目是 MCP 服务,向 Claude Desktop 等 MCP 客户端暴露 Notion 的数据库、页面和搜索等操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"notion": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Notion MCP 服务

smithery badge

用于集成 Notion 的模型上下文协议(MCP)服务实现,提供与 Notion API 交互的标准化接口。兼容 Claude Desktop 和其他 MCP 客户端。

功能

  • 列出并查询 Notion 数据库
  • 创建和更新页面
  • 搜索 Notion 工作区
  • 获取数据库详情和块子项
  • 全面支持 httpx 的 async/await
  • 使用 Pydantic v2 模型实现类型安全
  • 完善的错误处理和详细日志记录
  • 兼容 MCP 1.6.0

安装

通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 Notion Integration Server:

npx -y @smithery/cli install @ccabanillas/notion-mcp --client claude
手动安装
  1. 克隆代码库:
git clone https://github.com/ccabanillas/notion-mcp.git
cd notion-mcp
  1. 创建虚拟环境并安装依赖(使用 uv):
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e .

或者,使用标准 venv:

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e .
  1. 在项目根目录中创建 .env 文件:
NOTION_API_KEY=your_notion_integration_token

使用方法

  1. 测试服务(运行时不应出现错误):
python -m notion_mcp
  1. 若要与 Claude Desktop 搭配使用,请调整 claude_desktop_config.json 文件(macOS 上的路径为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
  "servers": {
    "notion-mcp": {
      "command": "/Users/username/Projects/notion-mcp/.venv/bin/python",
      "args": ["-m", "notion_mcp"],
      "cwd": "/Users/username/Projects/notion-mcp"
    }
  }
}

请务必将 /Users/username/ 替换为你的实际主目录路径。

开发

项目结构
notion-mcp/
├── src/
│   └── notion_mcp/
│       ├── models/
│       │   ├── __init__.py
│       │   └── notion.py      # Pydantic models for Notion objects
│       ├── __init__.py        
│       ├── __main__.py        # Entry point
│       ├── client.py          # Notion API client
│       └── server.py          # MCP server implementation
├── .env                       # Environment variables (add your Notion API key here)
├── .gitignore
├── pyproject.toml             # Project dependencies
└── README.md
运行测试
pytest

配置

此服务需要 Notion 集成令牌。设置步骤如下:

  1. 前往 https://www.notion.so/my-integrations
  2. 创建一个具有适当权限(根据需要设置读取/写入权限)的新集成
  3. 复制集成令牌
  4. 将其添加到项目根目录中的 .env 文件:
NOTION_API_KEY=your_notion_integration_token
  1. 将 Notion 数据库共享给该集成(通过数据库的“Share”菜单)

参与贡献

  1. Fork 代码库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add some amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 发起 Pull Request

许可证

MIT 许可证——使用风险自负

故障排除

常见问题
  • 连接错误:请确保 Notion API 密钥正确,且可以访问互联网
  • 权限错误:请确保已授予集成访问你要访问的数据库的权限
  • Claude Desktop 集成:如果 Claude Desktop 无法连接,请检查配置路径是否正确,以及服务运行时是否未向 stdout 输出日志

致谢

  • 为兼容 Claude Desktop 和其他 MCP 客户端而构建
  • 使用 Notion API(最新兼容版本为 2022-02-22)
  • 持续保持与 MCP 1.6.0 的兼容性
  • 特别感谢 danhilse,我参考了他的 notion-mcp-server 项目

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。