Notion ChatGPT连接服务

一个连接Notion与ChatGPT的协议服务器,实现可控的页面访问和内容检索功能。

  • by Kumala3
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Kumala3/Notion-MCP-Server

使用说明

Notion MCP 服务器(用于 ChatGPT)

一个模型上下文协议(MCP)服务器,用于将您的Notion账户与ChatGPT连接,从而实现对特定Notion页面的受控访问。

特点/功能

  • 🔒(锁形符号,常用于表示安全、保密或锁定状态) 页面特定的访问控制 - 仅授予对特定Notion页面的访问权限
  • 🔍(放大镜图标,通常表示搜索或查看细节) 搜索功能 - 在您授权的Notion页面中进行搜索
  • 📄 代表一张纸或文档的符号。 获取全部内容 - 获取包括区块在内的完整页面内容
  • 🔐 OAuth 支持 - 使用Notion进行安全认证
  • 🚀 火箭或快速上升的符号 由FastMCP提供支持 - 使用FastMCP构建,便于部署

建筑学

这个MCP服务器实现了两个必需的工具:

  1. search - 在授权的Notion页面中搜索

    • 返回值: {results: [{id, title, url}]}
  2. fetch - 获取特定页面的完整内容

    • 返回值: {id, title, text, url, metadata}

设置

先决条件

  • Python 3.8及以上版本
  • Notion账户
  • Notion集成(API密钥)

安装

  1. 克隆此存储库:
git clone <your-repo-url>
cd ChatGPT\ Notion\ MCP\ Server
  1. 安装依赖项:
pip install -r requirements.txt
  1. 创建一个 .env 包含您的配置文件:
NOTION_API_KEY=your_notion_api_key
ALLOWED_PAGE_IDS=page_id_1,page_id_2,page_id_3
PORT=8000

获取您的Notion API密钥

  1. 访问 https://www.notion.so/my-integrations
  2. 点击“新建集成”
  3. 给它起个名字(例如,“ChatGPT MCP 服务器”)
  4. 复制“内部集成令牌”
  5. 与您的集成共享特定页面:
    • 打开你想要授权访问的每个页面
    • 点击“分享”→“邀请”→选择您的集成

获取页面ID

  1. 在浏览器中打开一个Notion页面
  2. 该URL将看起来像: https://www.notion.so/Page-Title-32charPageID
  3. 复制末尾的32位字符ID
  4. 添加多个页面ID到 ALLOWED_PAGE_IDS (用逗号分隔)

运行服务器

本地开发

python server.py

服务器将在 http://localhost:8000

部署到Replit

  1. 将此仓库导入到Replit
  2. 在Replit Secrets中添加环境变量
  3. 运行该项目

连接到ChatGPT

通过ChatGPT设置

  1. 打开ChatGPT设置 → 连接器
  2. 添加一个新的MCP服务器
  3. 输入您的服务器URL(例如。, https://your-server.repl.co/sse/)
  4. 添加 search 并且 fetch 工具

通过API(深入研究)

curl https://api.openai.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "o4-mini-deep-research",
    "input": [...],
    "tools": [
      {
        "type": "mcp",
        "server_label": "notion",
        "server_url": "https://your-server.com/sse/",
        "allowed_tools": ["search", "fetch"],
        "require_approval": "never"
      }
    ]
  }'

安全考虑事项

  • ⚠️ 仅添加您希望ChatGPT访问的页面ID
  • 🔒 保护好你的 NOTION_API_KEY 秘密
  • 🛡️ 审查 OpenAI MCP 安全指南
  • ✅ 在生产环境中使用 HTTPS
  • 🔐 考虑在多用户场景中实施OAuth

测试

在本地测试您的服务器:

# Search test
curl http://localhost:8000/test-search?query=test

# Fetch test
curl http://localhost:8000/test-fetch?page_id=YOUR_PAGE_ID

故障排除

“页面未找到”错误

  • 确保页面已与您的集成共享
  • 验证页面ID是否在(其中) ALLOWED_PAGE_IDS

“未经授权”错误

  • 检查你的 NOTION_API_KEY 是正确的
  • 验证集成是否可以访问这些页面

连接问题

  • 确保您的服务器可公开访问
  • 检查防火墙设置
  • 验证HTTPS已启用(生产环境必需)