Notion MCP Server

设置Notion API密钥和权限,并通过Python脚本与Notion进行交互。
2分
13
安装
复制以下命令到你的Client进行配置
注意:您的密钥属于敏感信息,请勿与任何人分享。

🚀 配置 Notion API 密钥和权限

本项目主要用于指导用户完成 Notion API 密钥的创建、页面权限的配置、代码更新、Claude 环境设置、Notion 库安装以及文档字符串的生成等操作,帮助用户顺利使用 Notion API 进行开发。

🚀 快速开始

创建 Notion API 密钥

  1. 访问 Notion 集成:访问 Notion 集成,并使用您的 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
    """
    # 具体实现代码
使用注意事项
  • 摘要:简要描述函数的目的。
  • 参数:详细说明每个输入参数及其类型和用途。
  • 返回值:明确返回值的类型和含义。

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

精选MCP服务推荐
Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
972
4.3分
Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
4.1K
5分
Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
6.8K
4.5分
Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
324
4.8分
Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
1.9K
5分
Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
821
4.5分
Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
901
4.8分
Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
5.4K
4.7分
AIbase
智启未来,您的人工智能解决方案智库
简体中文