KosmoKrator

productivity

Notion MCP Integration for Claude Agent SDK

Connect Notion to Claude Agent SDK through the local KosmoKrator MCP gateway with scoped tools, credentials, and write policy.

20 functions 11 read 9 write API key auth

Connect Notion to Claude Agent SDK

Give Claude Agent SDK workflows access to KosmoKrator integrations through a local MCP server.

Add a KosmoKrator stdio MCP server to the Claude Agent SDK options. The gateway is local, scoped to this integration, and starts with --write=deny so Claude Agent SDK can inspect read-capable tools without receiving write access by default.

Notion MCP Config for Claude Agent SDK

Use a narrow integration list so the agent does not load unrelated tools.

{
  "mcpServers": {
    "kosmokrator-notion": {
      "type": "stdio",
      "command": "kosmo",
      "args": [
        "mcp:serve",
        "--integration=notion",
        "--write=deny"
      ]
    }
  }
}

Run the Gateway Manually

kosmokrator mcp:serve --integration=notion --write=deny

Why Use KosmoKrator Here

Scoped tools

Expose only Notion instead of a broad multi-service tool list.

Local credentials

Reuse credentials already configured for the KosmoKrator CLI and Lua runtime.

Write policy

Start read-only, then opt into ask or allow for trusted workspaces.

Notion Tools Visible to Claude Agent SDK

Claude Agent SDK sees stable MCP tool names generated from the Notion integration catalog.

MCP toolSource functionTypeDescription
integration__notion__notion_search notion.notion_search Read Search pages and databases in your Notion workspace. Returns matching results with their IDs, types, and titles. Optionally filter by type (page or database) and control sort direction.
integration__notion__notion_create_page notion.notion_create_page Write Create a new page in Notion. The page can be created as a child of a database (to create a row) or as a child of another page (to create a sub-page). Provide properties as a JSON object matching the database schema when using a database parent. Provide children (block content) as a JSON array of block objects.
integration__notion__notion_get_page notion.notion_get_page Read Retrieve a Notion page by its ID. Returns the page object with properties, including title, icon, cover, parent info, and timestamps.
integration__notion__notion_update_page notion.notion_update_page Write Update properties on a Notion page. Provide properties as a JSON object matching the database/page schema. Can also archive/unarchive the page.
integration__notion__notion_archive_page notion.notion_archive_page Write Archive a Notion page by setting its archived flag to true. The page can be restored by using notion_update_page with archived=false.
integration__notion__notion_create_database notion.notion_create_database Write Create a new database as a child of a page. Provide the parent page ID, a title, and a properties schema. Properties define the columns of the database. Example properties: {"Name": {"title": {}}, "Status": {"select": {"options": [{"name": "Todo"}, {"name": "Done"}]}}}.
integration__notion__notion_get_database notion.notion_get_database Read Retrieve a Notion database by its ID. Returns the full database schema including all property definitions (columns), title, and parent info.
integration__notion__notion_update_database notion.notion_update_database Write Update a Notion database's title and/or property schema. Provide a new title and/or modified properties as a JSON object.
integration__notion__notion_query_database notion.notion_query_database Read Query a Notion database to retrieve rows (pages). Supports filtering and sorting. Filter and sorts can be provided as JSON strings or arrays. Example filter: {"property": "Status", "select": {"equals": "Done"}} Example sorts: [{"property": "Name", "direction": "ascending"}]
integration__notion__notion_list_databases notion.notion_list_databases Read List all databases accessible to the integration. Uses the search endpoint filtered to database objects. Optionally provide a query to filter by name.
integration__notion__notion_get_block_children notion.notion_get_block_children Read Get the child blocks of a Notion block or page. Returns a list of block objects. Use this to read the content of a page or to navigate nested block structures. Supports pagination.
integration__notion__notion_append_block_children notion.notion_append_block_children Write Append blocks to a Notion page or block. Provide children as a JSON array of block objects. Example: [{"object":"block","type":"paragraph","paragraph":{"rich_text":[{"type":"text","text":{"content":"Hello world"}}]}}]
integration__notion__notion_get_block notion.notion_get_block Read Retrieve a single Notion block by its ID. Returns the full block object including type-specific content, has_children flag, and parent info.
integration__notion__notion_update_block notion.notion_update_block Write Update the content of a Notion block. Provide the block ID and the type-specific content to update. For example, to update a paragraph block, provide: {"type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "New text"}}]}} Only the fields you include will be updated.
integration__notion__notion_delete_block notion.notion_delete_block Write Delete a Notion block by its ID. This permanently removes the block (moves it to trash if it is a top-level page block).
integration__notion__notion_get_current_user notion.notion_get_current_user Read Get information about the current integration bot user. Returns the bot's name, avatar, and workspace info.
integration__notion__notion_list_users notion.notion_list_users Read List all users in the Notion workspace. Returns user IDs, names, types, and avatar URLs. Supports pagination.
integration__notion__notion_get_user notion.notion_get_user Read Retrieve a Notion user by their ID. Returns the user's name, type, avatar URL, and email (if available).
integration__notion__notion_create_comment notion.notion_create_comment Write Create a comment on a Notion page. You can either start a new discussion (provide parent_id) or reply to an existing discussion (provide discussion_id). Provide body_text for simple text, or body_children for rich content blocks.
integration__notion__notion_get_comments notion.notion_get_comments Read Retrieve comments on a Notion page or block. Returns all comment objects with their content, authors, and timestamps. Supports pagination.

Related Notion Pages