使用说明
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
手动安装
- 克隆存储库:
git clone https://github.com/ccabanillas/notion-mcp.git
cd notion-mcp
- 创建虚拟环境并安装依赖项(使用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 .
- 创建一个
.env项目根目录中的文件:
NOTION_API_KEY=your_notion_integration_token
用法
- 测试服务器(它应该无错误运行):
python -m notion_mcp
- 要将其与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集成令牌。要设置此项,请执行以下操作:
- 首选https://www.notion.so/my-integrations
- 创建具有适当功能的新集成(根据需要进行读/写)
- 复制集成令牌
- 将其添加到您的
.env项目根目录中的文件:
NOTION_API_KEY=your_notion_integration_token
- 通过集成共享您的Notion数据库(从数据库的“共享”菜单)
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
MIT许可证-使用风险自负
故障排除
常见问题
- 连接错误:确保您的Notion API密钥正确,并且您可以访问互联网
- 权限错误:确保您的集成已被授予访问您尝试访问的数据库的权限
- Claude桌面集成:如果Claude Desktop未连接,请检查您的配置路径是否正确,以及服务器是否在没有登录到stdout的情况下运行
