A MCP(Model Context Protocol) server that accesses to Notion unofficial API to export pages.
This server provides MCP-compatible access to Notion's unofficial API, allowing AI assistants to interact with your Notion exported page data through a standardized interface.
Available tools:
-
notion_export_get_result
- Get notion export result markdown text
npm install notion-export-mcp-server
-
NOTION_TOKEN_V2
: Your Notion token -
NOTION_FILE_TOKEN
: Your Notion file token
Directly:
npx notion-export-mcp-server
Or, run the installed module with node.
...
"lightdash": {
"command": "npx",
"args": [
"-y",
"notion-export-mcp-server"
],
"env": {
"NOTION_TOKEN_V2": "<your token>",
"NOTION_FILE_TOKEN": "<your token>"
}
},
...
To export anything from Notion, one needs to authenticate oneself with some Cookies (like a browser would). These cookies are called token_v2
and file_token
. They are set on all requests of a logged in user when using the Notion web-app.
- Go to notion.so.
- Log in with your account.
- Open the developer tools of your browser, open Application > Storage > Cookies (Chrome); Storage tab (Firefox).
- Copy the value of the Cookies called
token_v2
andfile_token
and paste them somewhere safe.⚠️ If you don't find file_token, you need to have at least had exported a file manually once.
- Those cookies have a 1 year validity, so you don't need to do this often.
This tool completely relies on the export/download feature of the official but internal Notion.so API. The advantage is, that we do not generate any markup ourselves, just download and extract some ZIPs. While the download feature seems to be pretty stable, keep in mind that it still is an internal API, so it may break anytime.
-
npm run dev
- Start the server in development mode with hot reloading -
npm run build
- Build the project for production -
npm run start
- Start the production server -
npm run lint
- Run linting checks (ESLint and Prettier) -
npm run fix
- Automatically fix linting issues -
npm run examples
- Run the example scripts
- Fork the repository
- Create your feature branch
- Run tests and linting:
npm run lint
- Commit your changes
- Push to the branch
- Create a Pull Request