Notion集成服务

一个与Notion集成的模型上下文协议服务器,允许AI助手通过标准化工具和资源与您的Notion工作区进行交互。

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

使用说明

MCP服务器概念

与Notion集成的模型上下文协议(MCP)服务器,允许AI助手通过标准化的工具和资源与您的Notion工作区进行交互。

特性

工具(动作)

  • 创建页面:在您的Notion工作区中创建新页面
  • update_page:更新现有页面的内容
  • 搜索页面:在工作区中按标题搜索页面
  • append_to_page:将内容附加到现有页面
  • create_database_entry:向Notion数据库添加新条目

资源(数据访问)

  • 最近页面:获取最近编辑的页面列表
  • 页面内容:阅读特定页面的内容

先决条件

  • Python 3.10或更高版本
  • Notion账户
  • Notion集成令牌

获取您的通知API密钥

  1. 首选 https://www.notion.so/my-integrations
  2. 点击“+新集成”
  3. 为其命名(例如,“MCP服务器”)
  4. 选择要与之集成的工作区
  5. 点击“提交”
  6. 复制“内部集成令牌”-这是您的API密钥
  7. 重要:您必须与集成共享页面/数据库:
    • 在Notion中打开页面或数据库
    • 点击右上角的“…”菜单
    • 向下滚动到“连接”或“添加连接”
    • 选择您的集成

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
# Using pip
pip install -e .

# Or using uv (recommended)
uv add "mcp[cli]"
  1. 创建 .env 项目根目录中的文件:
NOTION_API_KEY=your_notion_integration_token_here

用法

直接运行服务器

python -m notion_mcp.server

与Claude Desktop一起使用

将此配置添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "notion": {
      "command": "python",
      "args": ["-m", "notion_mcp.server"],
      "env": {
        "NOTION_API_KEY": "your_notion_integration_token_here"
      }
    }
  }
}

或者,如果你正在使用 uv:

{
  "mcpServers": {
    "notion": {
      "command": "uv",
      "args": ["run", "notion-mcp"],
      "env": {
        "NOTION_API_KEY": "your_notion_integration_token_here"
      }
    }
  }
}

MCP检验员测试

npx @modelcontextprotocol/inspector python -m notion_mcp.server

示例用法

连接到Claude Desktop后,您可以问以下问题:

  • “在我的Notion工作区中创建一个名为“会议笔记”的新页面”
  • “搜索有关‘project alpha’的页面”
  • “显示我最近编辑的页面”
  • “将这些操作项附加到我的会议笔记页面”
  • “在我的任务数据库中创建新条目”

建筑

服务器实现MCP规范,并提供:

  1. 工具:Claude可以调用以在Notion中执行操作的函数
  2. 资源:对Notion数据的只读访问
  3. 正确的错误处理:优雅地处理API错误和速率限制

安全须知

  • 永远不要承诺你的 .env 文件或共享您的Notion API密钥
  • 集成只能访问您明确与其共享的页面/数据库
  • 所有API调用都是通过HTTPS进行的
  • 考虑在生产部署中使用环境变量

故障排除

找不到数据库或找不到页面

  • 确保您已将页面/数据库与Notion中的集成共享
  • 检查页面/数据库ID是否正确

“未经授权”的错误

  • 在中验证您的API密钥是否正确 .env 文件
  • 确保集成具有必要的权限

服务器未出现在Claude Desktop中

  • 检查配置文件路径是否正确
  • 验证命令中的Python路径
  • 查看Claude Desktop日志以获取错误消息

发展

要扩展此服务器,请执行以下操作:

  1. 使用添加新工具 @mcp.tool() 装饰器
  2. 使用添加新资源 @mcp.resource() 装饰器
  3. 部署前使用MCP检查器进行测试

许可证

MIT许可证

贡献

欢迎投稿!请随时提交问题或拉取请求。