naftiko: 1.0.0-alpha2 info: label: Notion API — Pages description: 'Notion API — Pages. 4 operations. Lead operation: Notion Create a page. Self-contained Naftiko capability covering one Notion business surface.' tags: - Notion - Pages created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: NOTION_API_KEY: NOTION_API_KEY capability: consumes: - type: http namespace: notion-pages baseUri: https://api.notion.com/v1 description: Notion API — Pages business capability. Self-contained, no shared references. resources: - name: pages path: /pages operations: - name: createpage method: POST description: Notion Create a page outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: pages-page_id path: /pages/{page_id} operations: - name: retrievepage method: GET description: Notion Retrieve a page outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page_id in: path type: string description: The ID of the page to retrieve. required: true - name: filter_properties in: query type: array description: A list of page property value IDs to include in the response. If provided, only the specified properties will be returned. - name: updatepage method: PATCH description: Notion Update page properties outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page_id in: path type: string description: The ID of the page to update. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: pages-page_id-properties-property_id path: /pages/{page_id}/properties/{property_id} operations: - name: retrievepageproperty method: GET description: Notion Retrieve a page property item outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page_id in: path type: string description: The ID of the page. required: true - name: property_id in: path type: string description: The ID of the property to retrieve. required: true - name: start_cursor in: query type: string description: Pagination cursor for paginated property types. If supplied, returns results starting after the cursor. - name: page_size in: query type: integer description: Maximum number of property items to return (max 100). authentication: type: bearer token: '{{env.NOTION_API_KEY}}' exposes: - type: rest namespace: notion-pages-rest port: 8080 description: REST adapter for Notion API — Pages. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/pages name: pages description: REST surface for pages. operations: - method: POST name: createpage description: Notion Create a page call: notion-pages.createpage with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/pages/{page-id} name: pages-page-id description: REST surface for pages-page_id. operations: - method: GET name: retrievepage description: Notion Retrieve a page call: notion-pages.retrievepage with: page_id: rest.page_id filter_properties: rest.filter_properties outputParameters: - type: object mapping: $. - method: PATCH name: updatepage description: Notion Update page properties call: notion-pages.updatepage with: page_id: rest.page_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/pages/{page-id}/properties/{property-id} name: pages-page-id-properties-property-id description: REST surface for pages-page_id-properties-property_id. operations: - method: GET name: retrievepageproperty description: Notion Retrieve a page property item call: notion-pages.retrievepageproperty with: page_id: rest.page_id property_id: rest.property_id start_cursor: rest.start_cursor page_size: rest.page_size outputParameters: - type: object mapping: $. - type: mcp namespace: notion-pages-mcp port: 9090 transport: http description: MCP adapter for Notion API — Pages. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: notion-create-page description: Notion Create a page hints: readOnly: false destructive: false idempotent: false call: notion-pages.createpage with: body: tools.body outputParameters: - type: object mapping: $. - name: notion-retrieve-page description: Notion Retrieve a page hints: readOnly: true destructive: false idempotent: true call: notion-pages.retrievepage with: page_id: tools.page_id filter_properties: tools.filter_properties outputParameters: - type: object mapping: $. - name: notion-update-page-properties description: Notion Update page properties hints: readOnly: false destructive: false idempotent: true call: notion-pages.updatepage with: page_id: tools.page_id body: tools.body outputParameters: - type: object mapping: $. - name: notion-retrieve-page-property-item description: Notion Retrieve a page property item hints: readOnly: true destructive: false idempotent: true call: notion-pages.retrievepageproperty with: page_id: tools.page_id property_id: tools.property_id start_cursor: tools.start_cursor page_size: tools.page_size outputParameters: - type: object mapping: $.