探索
Notion MCP Server

Notion MCP Server

设置Notion API密钥和权限,并通过Python脚本与Notion进行交互。
2分
0
2025-04-28 15:20:46
内容详情
替代品
安装
复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。

配置 Notion API 密钥和权限

创建 Notion API 密钥

  1. 访问 Notion 集成:

  2. 创建新集成:

    • 点击 "New Integration",填写所需的字段(例如集成名称),然后选择您要连接的工作区。
  3. 保存集成:

    • 提交后会生成一个 API 密钥。请将此密钥复制并安全保存,用于后续的 API 请求认证。
  4. 获取 API 密钥:

    • 复制生成的 API 密钥,并确保其安全性。

配置页面权限以使用集成

  1. 打开 Notion 页面:

    • 打开您要赋予权限的 Notion 页面。
  2. 共享页面:

    • 点击页面顶部右侧的 "Share" 按钮。
  3. 邀请集成:

    • 在 "Invite" 文本框中输入您的集成名称,并从下拉列表中选择它。这样可以授予该集成对页面的访问权限。
  4. 设置权限:

    • 确保集成具有执行所需操作(例如读取、写入)的必要权限。

代码更新

notion_sdk.py 文件中,将 PAGE_ID 更新为之前创建的页面 ID。您可以通过复制页面链接来获取该 ID。

示例中的 Notion 页面 ID

https://www.notion.so/MCP-Parent-Page-1d21f7216bdb80789f88fccd964b5031

Curl 示例

以下是一个使用 Notion API 创建新页面的示例:

curl --location --request POST 'https://api.notion.com/v1/pages' \
--header 'Authorization: Bearer $NOTION_API_KEY' \
--header 'Content-Type: application/json' \
--header 'Notion-Version: 2021-05-13' \
--data '{
"parent": { "page_id": "1d21f7216bdb80789f88fccd964b5031" },
"properties": {
    "title": [
        {
            "text": {
                "content": "新页面标题"
            }
        }
    ]
}
'

在 Claude 中设置

安装 uv 工具

如果您使用的是 Mac,请通过以下命令安装:

brew install uv

验证安装是否成功:

uv --version

运行 Python 脚本:

uv run <script>.py

设置环境变量

在 Claude 中,您需要将 NOTION_API_KEY 添加到环境变量。例如:

export NOTION_API_KEY=your_api_key_here

或者,在配置文件中指定可执行文件路径:

{
  "executors": {
    "default_python": {
      "command": "/usr/bin/python3",
      "env": {
        "NOTION_API_KEY": "your_api_key"
      }
    }
  }
}

安装 Notion 库

使用 pip 安装 notion-client

pip install notion-client

生成文档字符串示例

以下是一个函数的示例 docstring,帮助 LLM 和人类理解工具的用法和参数:

示例函数及其 docstring

def get_page_content(page_id: str) -> dict:
    """
    获取指定页面的内容。
    
    Args:
        page_id (str): 需要获取内容的页面 ID
        
    Returns:
        dict: 页面内容,包含标题和其他属性
    """
    # 具体实现代码

另一个示例

def create_new_page(parent_id: str, title: str) -> str:
    """
    在指定父页面下创建新页面。
    
    Args:
        parent_id (str): 父页面的 ID
        title (str): 新页面的标题
        
    Returns:
        str: 新创建页面的 ID
    """
    # 具体实现代码

使用注意事项

  • 摘要:简要描述函数的目的。
  • 参数:详细说明每个输入参数及其类型和用途。
  • 返回值:明确返回值的类型和含义。

通过遵循这些规范,您可以确保文档字符串既对人友好又对模型友好。