notion by membranedev/application-skills
npx skills add https://github.com/membranedev/application-skills --skill notionNotion 是一个集笔记记录、项目管理和维基功能于一体的全能工作空间。个人和团队使用它来组织工作、管理项目以及协作处理文档。可以将其视为一个高度可定制的生产力工具。
官方文档:https://developers.notion.com/
根据需要使用操作名称和参数。
此技能使用 Membrane CLI 与 Notion 交互。Membrane 自动处理身份验证和凭据刷新——因此您可以专注于集成逻辑,而无需操心身份验证的底层实现。
安装 Membrane CLI,以便您可以从终端运行 membrane 命令:
npm install -g @membranehq/cli
membrane login --tenant
浏览器窗口将打开以进行身份验证。
无头环境: 运行该命令,复制打印出的 URL 供用户在浏览器中打开,然后使用 完成验证。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
membrane login complete <code>创建新连接:
membrane search notion --elementType=connector --json
从 output.items[0].element?.id 获取连接器 ID,然后:
membrane connect --connectorId=CONNECTOR_ID --json
用户在浏览器中完成身份验证。输出包含新的连接 ID。
当您不确定连接是否已存在时:
检查现有连接:
membrane connection list --json
如果存在 Notion 连接,请记下其 connectionId。
当您知道要做什么但不知道确切的操作 ID 时:
membrane action list --intent=QUERY --connectionId=CONNECTION_ID --json
这将返回包含 id 和 inputSchema 的操作对象,以便您了解如何运行它。
| 名称 | 键 | 描述 |
|---|---|---|
| 查询数据库 | query-database | 查询数据库并返回符合筛选和排序条件的页面。 |
| 获取页面 | get-page | 通过 ID 检索页面。 |
| 获取数据库 | get-database | 通过 ID 检索数据库对象。 |
| 获取块子项 | get-block-children | 检索块或页面的子块。 |
| 获取块 | get-block | 通过 ID 检索块对象。 |
| 列出用户 | list-users | 列出工作区中的所有用户。 |
| 搜索 | search | 搜索已与集成共享的所有页面和数据库。 |
| 创建页面 | create-page | 在现有页面或数据库下创建新页面作为子项。 |
| 创建数据库 | create-database | 在现有页面下创建数据库作为子项。 |
| 创建评论 | create-comment | 在页面或现有讨论主题中创建评论。 |
| 更新页面 | update-page | 更新页面属性、图标、封面或归档状态。 |
| 更新数据库 | update-database | 更新数据库标题、描述、属性模式或图标/封面。 |
| 更新块 | update-block | 更新现有块的内容或属性。 |
| 追加块子项 | append-block-children | 向现有块或页面追加新的子块。 |
| 删除块 | delete-block | 删除(归档)一个块。 |
| 归档页面 | archive-page | 通过将其 archived 属性设置为 true 来归档(放入回收站)页面。 |
| 恢复页面 | restore-page | 通过将其 archived 属性设置为 false 来恢复已归档的页面。 |
| 获取用户 | get-user | 通过 ID 检索用户。 |
| 列出评论 | list-comments | 列出页面或块上的所有评论。 |
| 获取页面属性 | get-page-property | 从页面检索特定的属性值。 |
membrane action run --connectionId=CONNECTION_ID ACTION_ID --json
传递 JSON 参数:
membrane action run --connectionId=CONNECTION_ID ACTION_ID --json --input "{ \"key\": \"value\" }"
当可用操作无法满足您的用例时,您可以通过 Membrane 的代理直接向 Notion API 发送请求。Membrane 会自动将您提供的路径附加到基础 URL,并注入正确的身份验证头部——如果凭据过期,还会透明地进行刷新。
membrane request CONNECTION_ID /path/to/endpoint
常用选项:
| 标志 | 描述 |
|---|---|
-X, --method | HTTP 方法(GET、POST、PUT、PATCH、DELETE)。默认为 GET |
-H, --header | 添加请求头(可重复),例如 -H "Accept: application/json" |
-d, --data | 请求体(字符串) |
--json | 发送 JSON 请求体并设置 Content-Type: application/json 的简写 |
--rawData | 按原样发送请求体,不做任何处理 |
--query | 查询字符串参数(可重复),例如 --query "limit=10" |
--pathParam | 路径参数(可重复),例如 --pathParam "id=123" |
membrane action list --intent=QUERY(将 QUERY 替换为您的意图)以查找现有操作。预构建的操作处理了原始 API 调用可能遗漏的分页、字段映射和边界情况。每周安装数
87
代码仓库
GitHub 星标数
18
首次出现
13 天前
安全审计
安装于
gemini-cli87
github-copilot87
codex87
kimi-cli87
cursor87
amp87
Notion is an all-in-one workspace that combines note-taking, project management, and wiki functionalities. It's used by individuals and teams to organize their work, manage projects, and collaborate on documents. Think of it as a highly customizable productivity tool.
Official docs: https://developers.notion.com/
Use action names and parameters as needed.
This skill uses the Membrane CLI to interact with Notion. Membrane handles authentication and credentials refresh automatically — so you can focus on the integration logic rather than auth plumbing.
Install the Membrane CLI so you can run membrane from the terminal:
npm install -g @membranehq/cli
membrane login --tenant
A browser window opens for authentication.
Headless environments: Run the command, copy the printed URL for the user to open in a browser, then complete with membrane login complete <code>.
Create a new connection:
membrane search notion --elementType=connector --json
Take the connector ID from output.items[0].element?.id, then:
membrane connect --connectorId=CONNECTOR_ID --json
The user completes authentication in the browser. The output contains the new connection id.
When you are not sure if connection already exists:
Check existing connections:
membrane connection list --json
If a Notion connection exists, note its connectionId
When you know what you want to do but not the exact action ID:
membrane action list --intent=QUERY --connectionId=CONNECTION_ID --json
This will return action objects with id and inputSchema in it, so you will know how to run it.
| Name | Key | Description |
|---|---|---|
| Query Database | query-database | Queries a database and returns pages that match the filter and sort criteria. |
| Get Page | get-page | Retrieves a page by its ID. |
| Get Database | get-database | Retrieves a database object by its ID. |
| Get Block Children | get-block-children | Retrieves the children blocks of a block or page. |
| Get Block | get-block | Retrieves a block object by its ID. |
| List Users | list-users | Lists all users in the workspace. |
| Search | search | Searches all pages and databases that have been shared with the integration. |
| Create Page | create-page | Creates a new page as a child of an existing page or database. |
| Create Database | create-database |
membrane action run --connectionId=CONNECTION_ID ACTION_ID --json
To pass JSON parameters:
membrane action run --connectionId=CONNECTION_ID ACTION_ID --json --input "{ \"key\": \"value\" }"
When the available actions don't cover your use case, you can send requests directly to the Notion API through Membrane's proxy. Membrane automatically appends the base URL to the path you provide and injects the correct authentication headers — including transparent credential refresh if they expire.
membrane request CONNECTION_ID /path/to/endpoint
Common options:
| Flag | Description |
|---|---|
-X, --method | HTTP method (GET, POST, PUT, PATCH, DELETE). Defaults to GET |
-H, --header | Add a request header (repeatable), e.g. -H "Accept: application/json" |
-d, --data | Request body (string) |
--json | Shorthand to send a JSON body and set Content-Type: application/json |
--rawData |
membrane action list --intent=QUERY (replace QUERY with your intent) to find existing actions before writing custom API calls. Pre-built actions handle pagination, field mapping, and edge cases that raw API calls miss.Weekly Installs
87
Repository
GitHub Stars
18
First Seen
13 days ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
gemini-cli87
github-copilot87
codex87
kimi-cli87
cursor87
amp87
Azure RBAC 权限管理工具:查找最小角色、创建自定义角色与自动化分配
142,000 周安装
| Creates a database as a child of an existing page. |
| Create Comment | create-comment | Creates a comment on a page or in an existing discussion thread. |
| Update Page | update-page | Updates page properties, icon, cover, or archived status. |
| Update Database | update-database | Updates database title, description, properties schema, or icon/cover. |
| Update Block | update-block | Updates the content or properties of an existing block. |
| Append Block Children | append-block-children | Appends new children blocks to an existing block or page. |
| Delete Block | delete-block | Deletes (archives) a block. |
| Archive Page | archive-page | Archives (trashes) a page by setting its archived property to true. |
| Restore Page | restore-page | Restores an archived page by setting its archived property to false. |
| Get User | get-user | Retrieves a user by their ID. |
| List Comments | list-comments | Lists all comments on a page or block. |
| Get Page Property | get-page-property | Retrieves a specific property value from a page. |
| Send the body as-is without any processing |
--query | Query-string parameter (repeatable), e.g. --query "limit=10" |
--pathParam | Path parameter (repeatable), e.g. --pathParam "id=123" |