Notion集成服务器

为Notion API提供标准化接口的模型上下文协议(MCP)服务器实现,支持列表查询、页面创建更新等功能,适用于Claude Desktop等MCP客户端。

  • by ccabanillas
  • Python
  • 本地部署
  • 111 星标
  • 更新于
在 GitHub 查看 ccabanillas/notion-mcp

使用说明

MCP服务器概念

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

特性

  • 列出并查询Notion数据库
  • 创建和更新页面
  • 在Notion工作区中搜索
  • 获取数据库详细信息并阻止子项
  • httpx完全支持异步/等待
  • Pydantic v2型号的类型安全
  • 通过详细的日志记录进行正确的错误处理
  • 与MCP 1.6.0的兼容性

安装

通过Smithery安装

通过以下方式自动安装克劳德桌面的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 文件(位于 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
  "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数据库(从数据库的“共享”菜单)

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

MIT许可证-使用风险自负

故障排除

常见问题

  • 连接错误:确保您的Notion API密钥正确,并且您可以访问互联网
  • 权限错误:确保您的集成已被授予访问您尝试访问的数据库的权限
  • Claude桌面集成:如果Claude Desktop未连接,请检查您的配置路径是否正确,以及服务器是否在没有登录到stdout的情况下运行

致谢

  • 专为与Claude Desktop和其他MCP客户端配合使用而构建
  • 使用Notion的API(最新兼容版本2022-02-22)
  • 保持MCP 1.6.0兼容性
  • 特别感谢 丹希尔斯,我引用了他的 概念mcp服务器 项目