notion
Notion integration via MCP (search/read/write pages).
Open source Open in the app JSON README (API)
About
Notion integration via MCP (search/read/write pages).
Details
- Kind
- Plugins
- Topic
- Productivity
- Publisher
- gitremko
- Origin
- gemini
- Category
- ferramentas
- Version
- 0.1.8
- Stars
- 14
- Forks
- 3
- Open pull requests
- 1
- Last push
- 2026-07-30T17:30:56Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-30 14:13:39
- Updated
- 2026-08-30 14:13:39
- Origin id
gitremko/gemini_cli_notion_extention
README
# Notion MCP for Gemini CLI
A lightweight Model Context Protocol (MCP) server that lets Gemini CLI (and other MCP clients) search, read, and write Notion content.
[](https://github.com/gitremko/Gemini_cli_notion_extention/actions/workflows/ci.yml)
## Requirements
- Gemini CLI installed and working
- Node.js 20+ and npm
- A Notion Internal Integration (API key)
## Quick Install (recommended)
- Install from GitHub:
- `gemini extensions install https://github.com/gitremko/Gemini_cli_notion_extention`
- Create a Notion Internal Integration and grant access (see below)
- Set your API key (see "Set API Key")
- Restart Gemini CLI, then run: `gemini extensions list` (should show `notion`)
## Create the Notion Integration (required)
1) Open https://www.notion.so/profile/integrations
2) Click "New integration"
- Workspace: choose the workspace you will use
- Type: Internal
- Capabilities: enable at minimum "Read content". To write, also enable "Insert content" and "Update content".
- Save
3) Grant access to pages/databases
- In the integration page, open the "Access" tab and add the pages/databases you want to use
- Or share specific Notion pages/databases with your integration from Notion
4) Copy the "Internal Integration Secret" — this is your API key
## Set API Key
- Windows (User-scoped, required on Windows)
- PowerShell: `[Environment]::SetEnvironmentVariable('NOTION_API_KEY','secret_...','User')`
- Open a new terminal after setting it
- macOS/Linux
- Current shell: `export NOTION_API_KEY=secret_...`
- Persist: add the export line to `~/.zshrc` or `~/.bashrc`
Notes
- Windows: this server reads the token only from the User-scoped environment (registry `HKCU\Environment`).
- Non-Windows: the token is read from the process environment.
- Supported names (first match wins): `NOTION_API_KEY`, `GEMINI_NOTION_API_KEY`, `NOTION_TOKEN`, `NOTION_SECRET`.
## Verify the Install
- Bundled server (no node_modules required):
- Windows: `node "%USERPROFILE%\.gemini\extensions\notion\dist\extension.cjs"`
- macOS/Linux: `node "$HOME/.gemini/extensions/notion/dist/extension.cjs"`
- Expected log: `Using Notion API key from: ...` and the process waits for a client connection
## Use in Gemini CLI
- After install, Gemini CLI discovers the MCP server `notion` automatically.
- Try a simple tool call (search):
- Ask: "search Notion for 'your term'" — the tool used is `notion_search`.
## Local Development (link)
- `git clone https://github.com/gitremko/Gemini_cli_notion_extention && cd Gemini_cli_notion_extention`
- `npm install && npm run build`
- `gemini extensions link .`
- Edit code, then `npm run build` and restart Gemini CLI
- Unlink later: `gemini extensions unlink notion`
## Available Tools (full)
- `notion_search` — search pages/databases (query, optional filter, page_size)
- `notion_get_page` — fetch a page object by id
- `notion_list_blocks` — list child blocks for a page/block
- `notion_append_paragraph` — append paragraph text
- `notion_create_page` — create a page in a database (with title property)
- `notion_create_subpage` — create a subpage under a page
- `notion_query_database` — query a database (filter, sorts, cursor, page_size)
- `notion_update_page` — update properties of a page
- `notion_get_block` — fetch a single block by id
- `notion_append_blocks` — append one or more blocks under a parent
- `notion_archive_page` — archive a page
- `notion_unarchive_page` — restore an archived page
- `notion_delete_block` — delete (archive) a block
- `notion_update_block_text` — update rich_text of paragraph/heading
- `notion_append_heading` — append a heading (1/2/3)
- `notion_append_todo` — append a to_do (checkbox)
- `notion_list_databases` — list databases in the workspace
- `notion_list_pages_in_database` — list pages in a database
- `notion_append_image_url` — append an image block from an external URL
Prompts
- `notion_build_filter` — build a database filter skeleton
- `notion_blocks_snippet` — generate blocks JSON for append
- `notion_create_page_snippet` — generate properties JSON for page creation
## Troubleshooting
- Connection closed (-32000): ensure Node is available on PATH and reinstall the extension.
- API token is invalid: verify your key and that the integration has access to the pages/databases.
- Verify the bundled entry runs:
- Windows: `node "%USERPROFILE%\.gemini\extensions\notion\dist\extension.cjs"`
- macOS/Linux: `node "$HOME/.gemini/extensions/notion/dist/extension.cjs"`
## Uninstall / Update
- Uninstall a GitHub-installed extension: `gemini extensions uninstall notion`
- Update: uninstall, then install again from the GitHub URL
- Remove a local link: `gemini extensions unlink notion`
## License
MIT