{"_id":"@akshaykripalani/notion-mcp-server","_rev":"5-a02e20f7abc86ec98c45793b3f8fd070","name":"@akshaykripalani/notion-mcp-server","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.0":{"name":"@akshaykripalani/notion-mcp-server","version":"1.0.0","keywords":["notion","api","mcp","server"],"author":{"name":"@notionhq"},"license":"MIT","_id":"@akshaykripalani/notion-mcp-server@1.0.0","maintainers":[{"name":"akshaykripalani","email":"akshaykrip@gmail.com"}],"homepage":"https://github.com/akshaykripalani/notion-mcp-server#readme","bugs":{"url":"https://github.com/akshaykripalani/notion-mcp-server/issues"},"bin":{"notion-mcp-server":"bin/cli.mjs"},"dist":{"shasum":"7ec9445bc0bfe7d9c876c1809bb7b5ba63b9883d","tarball":"https://registry.npmjs.org/@akshaykripalani/notion-mcp-server/-/notion-mcp-server-1.0.0.tgz","fileCount":35,"integrity":"sha512-HNKTEN1/NZWVtKqDwRJGBDH2HmbYZCaeF6DXjNT6emosTJ3+QCrcC4b7lCXKh3NLuGEwl01A0dZKvXlRrb/0Qw==","signatures":[{"sig":"MEQCIFfvFGJ2UU1S0YuQPSv1VUUrZLFVqcBBp1yPj7e+V3ndAiBcv7FCBbbz0sxjg6pMNqT1ovR4XSRu8xhZIMx3DK5wXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3269984},"main":"index.js","type":"module","gitHead":"177d080b64e39d187305f76eb9f43a91809a6ab3","scripts":{"dev":"tsx watch scripts/start-server.ts","build":"tsc -build && node scripts/build-cli.js"},"_npmUser":{"name":"akshaykripalani","email":"akshaykrip@gmail.com"},"repository":{"url":"git+ssh://git@github.com/akshaykripalani/notion-mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"Custom Stripped down Notion MCP server for MCP use.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"3.24.1","axios":"^1.8.4","which":"^5.0.0","yargs":"^17.7.2","express":"^4.21.2","mustache":"^4.2.0","form-data":"^4.0.1","node-fetch":"^3.3.2","openapi-types":"^12.1.3","openapi-client-axios":"^7.5.5","openapi-schema-validator":"^12.1.3","@modelcontextprotocol/sdk":"^1.13.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","multer":"1.4.5-lts.1","openai":"^4.91.1","vitest":"^3.1.1","esbuild":"^0.25.2","typescript":"^5.8.2","@types/node":"^20.17.16","@types/which":"^3.0.4","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@types/mustache":"^4.2.5","@anthropic-ai/sdk":"^0.33.1","@types/json-schema":"^7.0.15","@vitest/coverage-v8":"3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-mcp-server_1.0.0_1759404429988_0.5954444838582316","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@akshaykripalani/notion-mcp-server","version":"1.1.0","keywords":["notion","api","mcp","server"],"author":{"name":"@notionhq"},"license":"MIT","_id":"@akshaykripalani/notion-mcp-server@1.1.0","maintainers":[{"name":"akshaykripalani","email":"akshaykrip@gmail.com"}],"homepage":"https://github.com/akshaykripalani/notion-mcp-server#readme","bugs":{"url":"https://github.com/akshaykripalani/notion-mcp-server/issues"},"bin":{"notion-mcp-server":"bin/cli.mjs"},"dist":{"shasum":"78e98501313f646dd1057540ead15ac27d4b0ea4","tarball":"https://registry.npmjs.org/@akshaykripalani/notion-mcp-server/-/notion-mcp-server-1.1.0.tgz","fileCount":42,"integrity":"sha512-dPXyALCS9dD+2PCma9sav1Wl1+TvAiqS5Y8ffJ9sM5jgL8qHWIFFwBAPOWB/1bdQZy7epDF8pOE5Zn69b+Yobg==","signatures":[{"sig":"MEQCIEXx8veLvlxtViS2WgpvQvi0SqvuF1eeO75YpBCuTcmTAiBU6sdcG/ssHLocsJDN/jIYVC01NzCHqnonBB9A/78VEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3589814},"main":"index.js","type":"module","gitHead":"be342215c7fac808940326d8870e2119aa15c8c3","scripts":{"dev":"tsx watch scripts/start-server.ts","build":"tsc -build && node scripts/build-cli.js"},"_npmUser":{"name":"akshaykripalani","email":"akshaykrip@gmail.com"},"repository":{"url":"git+ssh://git@github.com/akshaykripalani/notion-mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"Custom Stripped down Notion MCP server for MCP use.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"3.24.1","axios":"^1.8.4","which":"^5.0.0","yargs":"^17.7.2","express":"^4.21.2","mustache":"^4.2.0","form-data":"^4.0.1","node-fetch":"^3.3.2","openapi-types":"^12.1.3","openapi-client-axios":"^7.5.5","openapi-schema-validator":"^12.1.3","@modelcontextprotocol/sdk":"^1.13.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","multer":"1.4.5-lts.1","openai":"^4.91.1","vitest":"^3.1.1","esbuild":"^0.25.2","typescript":"^5.8.2","@types/node":"^20.17.16","@types/which":"^3.0.4","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@types/mustache":"^4.2.5","@anthropic-ai/sdk":"^0.33.1","@types/json-schema":"^7.0.15","@vitest/coverage-v8":"3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-mcp-server_1.1.0_1763717862546_0.32993855725862353","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@akshaykripalani/notion-mcp-server","version":"1.1.1","keywords":["notion","api","mcp","server"],"author":{"name":"@notionhq"},"license":"MIT","_id":"@akshaykripalani/notion-mcp-server@1.1.1","maintainers":[{"name":"akshaykripalani","email":"akshaykrip@gmail.com"}],"homepage":"https://github.com/akshaykripalani/notion-mcp-server#readme","bugs":{"url":"https://github.com/akshaykripalani/notion-mcp-server/issues"},"bin":{"notion-mcp-server":"bin/cli.mjs"},"dist":{"shasum":"3ed961405533add02a03e8c0acd254b09e53b7b9","tarball":"https://registry.npmjs.org/@akshaykripalani/notion-mcp-server/-/notion-mcp-server-1.1.1.tgz","fileCount":42,"integrity":"sha512-Il2lQ96+DRFoWHHU06z68EbZh+AXHF+2RPxOCGUaCG+C0HMWM5cYqlPZneJ23ZfS9Y+xBC/KEKbBZOh7dpOHCQ==","signatures":[{"sig":"MEQCIHsCO+0oQ8LnVvbo6qVUR/QhOt76JBVmSwsaFJFOGpcPAiBBEIYXhclkC5TaVZp6/qStADXDxSXdZ5JPTorfj115EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3590536},"main":"index.js","type":"module","gitHead":"b8b9ba980e48d417817d2aa7b751fa87c2830865","scripts":{"dev":"tsx watch scripts/start-server.ts","build":"tsc -build && node scripts/build-cli.js"},"_npmUser":{"name":"akshaykripalani","email":"akshaykrip@gmail.com"},"repository":{"url":"git+ssh://git@github.com/akshaykripalani/notion-mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"Custom Stripped down Notion MCP server for MCP use.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"3.24.1","axios":"^1.8.4","which":"^5.0.0","yargs":"^17.7.2","express":"^4.21.2","mustache":"^4.2.0","form-data":"^4.0.1","node-fetch":"^3.3.2","openapi-types":"^12.1.3","openapi-client-axios":"^7.5.5","openapi-schema-validator":"^12.1.3","@modelcontextprotocol/sdk":"^1.13.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","multer":"1.4.5-lts.1","openai":"^4.91.1","vitest":"^3.1.1","esbuild":"^0.25.2","typescript":"^5.8.2","@types/node":"^20.17.16","@types/which":"^3.0.4","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@types/mustache":"^4.2.5","@anthropic-ai/sdk":"^0.33.1","@types/json-schema":"^7.0.15","@vitest/coverage-v8":"3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-mcp-server_1.1.1_1763718952418_0.5846191688151543","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@akshaykripalani/notion-mcp-server","version":"1.1.2","keywords":["notion","api","mcp","server"],"author":{"name":"@notionhq"},"license":"MIT","_id":"@akshaykripalani/notion-mcp-server@1.1.2","maintainers":[{"name":"akshaykripalani","email":"akshaykrip@gmail.com"}],"homepage":"https://github.com/akshaykripalani/notion-mcp-server#readme","bugs":{"url":"https://github.com/akshaykripalani/notion-mcp-server/issues"},"bin":{"notion-mcp-server":"bin/cli.mjs"},"dist":{"shasum":"d78291d3d4dbaa23fd726a79b020153860149264","tarball":"https://registry.npmjs.org/@akshaykripalani/notion-mcp-server/-/notion-mcp-server-1.1.2.tgz","fileCount":42,"integrity":"sha512-4QAI9xb50h1JV0M981MZOQGHFshI61LrexiXUmIo7gl0A+XAjoScNXiQniAFYOhcmM9vaH5hSll0MZqAKxTqIQ==","signatures":[{"sig":"MEYCIQDrh+Y72gL2RilChsj9qZZTJjtBIn3VzLy1adbSEIT0gAIhAMrkAqlEhuYcOure6fFEeS2GV27wgKMb79iFd9x19ScN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3591380},"main":"index.js","type":"module","gitHead":"e630b39e55383760b48afbd6a7967e23a04a643e","scripts":{"dev":"tsx watch scripts/start-server.ts","build":"tsc -build && node scripts/build-cli.js"},"_npmUser":{"name":"akshaykripalani","email":"akshaykrip@gmail.com"},"repository":{"url":"git+ssh://git@github.com/akshaykripalani/notion-mcp-server.git","type":"git"},"_npmVersion":"10.9.2","description":"Custom Stripped down Notion MCP server for MCP use.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"3.24.1","axios":"^1.8.4","which":"^5.0.0","yargs":"^17.7.2","express":"^4.21.2","mustache":"^4.2.0","form-data":"^4.0.1","node-fetch":"^3.3.2","openapi-types":"^12.1.3","openapi-client-axios":"^7.5.5","openapi-schema-validator":"^12.1.3","@modelcontextprotocol/sdk":"^1.13.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","multer":"1.4.5-lts.1","openai":"^4.91.1","vitest":"^3.1.1","esbuild":"^0.25.2","typescript":"^5.8.2","@types/node":"^20.17.16","@types/which":"^3.0.4","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@types/mustache":"^4.2.5","@anthropic-ai/sdk":"^0.33.1","@types/json-schema":"^7.0.15","@vitest/coverage-v8":"3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-mcp-server_1.1.2_1763721116023_0.9973410177998485","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@akshaykripalani/notion-mcp-server","keywords":["notion","api","mcp","server"],"version":"1.1.3","license":"MIT","type":"module","scripts":{"build":"tsc -build && node scripts/build-cli.js","dev":"tsx watch scripts/start-server.ts"},"bin":{"notion-mcp-server":"bin/cli.mjs"},"dependencies":{"@modelcontextprotocol/sdk":"^1.13.3","axios":"^1.8.4","express":"^4.21.2","form-data":"^4.0.1","mustache":"^4.2.0","node-fetch":"^3.3.2","openapi-client-axios":"^7.5.5","openapi-schema-validator":"^12.1.3","openapi-types":"^12.1.3","which":"^5.0.0","yargs":"^17.7.2","zod":"3.24.1"},"devDependencies":{"@anthropic-ai/sdk":"^0.33.1","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@types/json-schema":"^7.0.15","@types/mustache":"^4.2.5","@types/node":"^20.17.16","@types/which":"^3.0.4","@vitest/coverage-v8":"3.1.1","esbuild":"^0.25.2","multer":"1.4.5-lts.1","openai":"^4.91.1","tsx":"^4.19.3","typescript":"^5.8.2","vitest":"^3.1.1"},"description":"Custom Stripped down Notion MCP server for MCP use.","main":"index.js","repository":{"type":"git","url":"git+ssh://git@github.com/akshaykripalani/notion-mcp-server.git"},"author":{"name":"@notionhq"},"bugs":{"url":"https://github.com/akshaykripalani/notion-mcp-server/issues"},"homepage":"https://github.com/akshaykripalani/notion-mcp-server#readme","_id":"@akshaykripalani/notion-mcp-server@1.1.3","gitHead":"a31cc7b1a75e012e44be545a6bda6ac80f50bbeb","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-UFdCswy1V3z0E8W5qjnAnxASYSuQbamgYqsw9z1ubQq+unX4nrPb8P2rME3bAScFMHOIWSmIFd+AYH2zTN6keQ==","shasum":"936f090f74d919370096ea7198c049f75dc60709","tarball":"https://registry.npmjs.org/@akshaykripalani/notion-mcp-server/-/notion-mcp-server-1.1.3.tgz","fileCount":42,"unpackedSize":3592028,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFNMDRv/b5hnGHvTCSgRtSQlARjqmM3kv22jXCdGSCTAAiEAt+TnmsEdA/S97BMutvZdciNCktsQFOfkx3y+CYi8QTA="}]},"_npmUser":{"name":"akshaykripalani","email":"akshaykrip@gmail.com"},"directories":{},"maintainers":[{"name":"akshaykripalani","email":"akshaykrip@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notion-mcp-server_1.1.3_1763722461774_0.543782610598639"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-02T11:27:09.879Z","modified":"2025-11-21T10:54:22.250Z","1.0.0":"2025-10-02T11:27:10.206Z","1.1.0":"2025-11-21T09:37:42.806Z","1.1.1":"2025-11-21T09:55:52.663Z","1.1.2":"2025-11-21T10:31:56.296Z","1.1.3":"2025-11-21T10:54:22.045Z"},"bugs":{"url":"https://github.com/akshaykripalani/notion-mcp-server/issues"},"author":{"name":"@notionhq"},"license":"MIT","homepage":"https://github.com/akshaykripalani/notion-mcp-server#readme","keywords":["notion","api","mcp","server"],"repository":{"type":"git","url":"git+ssh://git@github.com/akshaykripalani/notion-mcp-server.git"},"description":"Custom Stripped down Notion MCP server for MCP use.","maintainers":[{"name":"akshaykripalani","email":"akshaykrip@gmail.com"}],"readme":"# Notion MCP Server\r\n\r\n> [!NOTE] \r\n> \r\n> We’ve introduced **Notion MCP**, a remote MCP server with the following improvements:\r\n> - Easy installation via standard OAuth. No need to fiddle with JSON or API token anymore.\r\n> - Powerful tools tailored to AI agents. These tools are designed with optimized token consumption in mind.\r\n> \r\n> Learn more and try it out [here](https://developers.notion.com/docs/mcp)\r\n\r\n\r\n![notion-mcp-sm](https://github.com/user-attachments/assets/6c07003c-8455-4636-b298-d60ffdf46cd8)\r\n\r\nThis project implements an [MCP server](https://spec.modelcontextprotocol.io/) for the [Notion API](https://developers.notion.com/reference/intro). \r\n\r\n![mcp-demo](https://github.com/user-attachments/assets/e3ff90a7-7801-48a9-b807-f7dd47f0d3d6)\r\n\r\n### Installation\r\n\r\n#### 1. Setting up Integration in Notion:\r\nGo to [https://www.notion.so/profile/integrations](https://www.notion.so/profile/integrations) and create a new **internal** integration or select an existing one.\r\n\r\n![Creating a Notion Integration token](docs/images/integrations-creation.png)\r\n\r\nWhile we limit the scope of Notion API's exposed (for example, you will not be able to delete databases via MCP), there is a non-zero risk to workspace data by exposing it to LLMs. Security-conscious users may want to further configure the Integration's _Capabilities_. \r\n\r\nFor example, you can create a read-only integration token by giving only \"Read content\" access from the \"Configuration\" tab:\r\n\r\n![Notion Integration Token Capabilities showing Read content checked](docs/images/integrations-capabilities.png)\r\n\r\n#### 2. Connecting content to integration:\r\nEnsure relevant pages and databases are connected to your integration.\r\n\r\nTo do this, visit the **Access** tab in your internal integration settings. Edit access and select the pages you'd like to use.\r\n![Integration Access tab](docs/images/integration-access.png)\r\n\r\n![Edit integration access](docs/images/page-access-edit.png)\r\n\r\nAlternatively, you can grant page access individually. You'll need to visit the target page, and click on the 3 dots, and select \"Connect to integration\". \r\n\r\n![Adding Integration Token to Notion Connections](docs/images/connections.png)\r\n\r\n#### 3. Adding MCP config to your client:\r\n\r\n##### Using npm:\r\n\r\n**Cursor & Claude:**\r\n\r\nAdd the following to your `.cursor/mcp.json` or `claude_desktop_config.json` (MacOS: `~/Library/Application\\ Support/Claude/claude_desktop_config.json`)\r\n\r\n**Option 1: Using NOTION_TOKEN (recommended)**\r\n```javascript\r\n{\r\n  \"mcpServers\": {\r\n    \"notionApi\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@notionhq/notion-mcp-server\"],\r\n      \"env\": {\r\n        \"NOTION_TOKEN\": \"ntn_****\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**Option 2: Using OPENAPI_MCP_HEADERS (for advanced use cases)**\r\n```javascript\r\n{\r\n  \"mcpServers\": {\r\n    \"notionApi\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@notionhq/notion-mcp-server\"],\r\n      \"env\": {\r\n        \"OPENAPI_MCP_HEADERS\": \"{\\\"Authorization\\\": \\\"Bearer ntn_****\\\", \\\"Notion-Version\\\": \\\"2022-06-28\\\" }\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**Zed**\r\n\r\nAdd the following to your `settings.json`\r\n\r\n```json\r\n{\r\n  \"context_servers\": {\r\n    \"some-context-server\": {\r\n      \"command\": {\r\n        \"path\": \"npx\",\r\n        \"args\": [\"-y\", \"@notionhq/notion-mcp-server\"],\r\n        \"env\": {\r\n          \"OPENAPI_MCP_HEADERS\": \"{\\\"Authorization\\\": \\\"Bearer ntn_****\\\", \\\"Notion-Version\\\": \\\"2022-06-28\\\" }\"\r\n        }\r\n      },\r\n      \"settings\": {}\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n##### Using Docker:\r\n\r\nThere are two options for running the MCP server with Docker:\r\n\r\n###### Option 1: Using the official Docker Hub image:\r\n\r\nAdd the following to your `.cursor/mcp.json` or `claude_desktop_config.json`:\r\n\r\n**Using NOTION_TOKEN (recommended):**\r\n```javascript\r\n{\r\n  \"mcpServers\": {\r\n    \"notionApi\": {\r\n      \"command\": \"docker\",\r\n      \"args\": [\r\n        \"run\",\r\n        \"--rm\",\r\n        \"-i\",\r\n        \"-e\", \"NOTION_TOKEN\",\r\n        \"mcp/notion\"\r\n      ],\r\n      \"env\": {\r\n        \"NOTION_TOKEN\": \"ntn_****\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**Using OPENAPI_MCP_HEADERS (for advanced use cases):**\r\n```javascript\r\n{\r\n  \"mcpServers\": {\r\n    \"notionApi\": {\r\n      \"command\": \"docker\",\r\n      \"args\": [\r\n        \"run\",\r\n        \"--rm\",\r\n        \"-i\",\r\n        \"-e\", \"OPENAPI_MCP_HEADERS\",\r\n        \"mcp/notion\"\r\n      ],\r\n      \"env\": {\r\n        \"OPENAPI_MCP_HEADERS\": \"{\\\"Authorization\\\":\\\"Bearer ntn_****\\\",\\\"Notion-Version\\\":\\\"2022-06-28\\\"}\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nThis approach:\r\n- Uses the official Docker Hub image\r\n- Properly handles JSON escaping via environment variables\r\n- Provides a more reliable configuration method\r\n\r\n###### Option 2: Building the Docker image locally:\r\n\r\nYou can also build and run the Docker image locally. First, build the Docker image:\r\n\r\n```bash\r\ndocker compose build\r\n```\r\n\r\nThen, add the following to your `.cursor/mcp.json` or `claude_desktop_config.json`:\r\n\r\n**Using NOTION_TOKEN (recommended):**\r\n```javascript\r\n{\r\n  \"mcpServers\": {\r\n    \"notionApi\": {\r\n      \"command\": \"docker\",\r\n      \"args\": [\r\n        \"run\",\r\n        \"--rm\",\r\n        \"-i\",\r\n        \"-e\",\r\n        \"NOTION_TOKEN=ntn_****\",\r\n        \"notion-mcp-server\"\r\n      ]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n**Using OPENAPI_MCP_HEADERS (for advanced use cases):**\r\n```javascript\r\n{\r\n  \"mcpServers\": {\r\n    \"notionApi\": {\r\n      \"command\": \"docker\",\r\n      \"args\": [\r\n        \"run\",\r\n        \"--rm\",\r\n        \"-i\",\r\n        \"-e\",\r\n        \"OPENAPI_MCP_HEADERS={\\\"Authorization\\\": \\\"Bearer ntn_****\\\", \\\"Notion-Version\\\": \\\"2022-06-28\\\"}\",\r\n        \"notion-mcp-server\"\r\n      ]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nDon't forget to replace `ntn_****` with your integration secret. Find it from your integration configuration tab:\r\n\r\n![Copying your Integration token from the Configuration tab in the developer portal](https://github.com/user-attachments/assets/67b44536-5333-49fa-809c-59581bf5370a)\r\n\r\n\r\n#### Installing via Smithery\r\n\r\n[![smithery badge](https://smithery.ai/badge/@makenotion/notion-mcp-server)](https://smithery.ai/server/@makenotion/notion-mcp-server)\r\n\r\nTo install Notion API Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@makenotion/notion-mcp-server):\r\n\r\n```bash\r\nnpx -y @smithery/cli install @makenotion/notion-mcp-server --client claude\r\n```\r\n\r\n### Transport Options\r\n\r\nThe Notion MCP Server supports two transport modes:\r\n\r\n#### STDIO Transport (Default)\r\nThe default transport mode uses standard input/output for communication. This is the standard MCP transport used by most clients like Claude Desktop.\r\n\r\n```bash\r\n# Run with default stdio transport\r\nnpx @notionhq/notion-mcp-server\r\n\r\n# Or explicitly specify stdio\r\nnpx @notionhq/notion-mcp-server --transport stdio\r\n```\r\n\r\n#### Streamable HTTP Transport\r\nFor web-based applications or clients that prefer HTTP communication, you can use the Streamable HTTP transport:\r\n\r\n```bash\r\n# Run with Streamable HTTP transport on port 3000 (default)\r\nnpx @notionhq/notion-mcp-server --transport http\r\n\r\n# Run on a custom port\r\nnpx @notionhq/notion-mcp-server --transport http --port 8080\r\n\r\n# Run with a custom authentication token\r\nnpx @notionhq/notion-mcp-server --transport http --auth-token \"your-secret-token\"\r\n```\r\n\r\nWhen using Streamable HTTP transport, the server will be available at `http://0.0.0.0:<port>/mcp`.\r\n\r\n##### Authentication\r\nThe Streamable HTTP transport requires bearer token authentication for security. You have three options:\r\n\r\n**Option 1: Auto-generated token (recommended for development)**\r\n```bash\r\nnpx @notionhq/notion-mcp-server --transport http\r\n```\r\nThe server will generate a secure random token and display it in the console:\r\n```\r\nGenerated auth token: a1b2c3d4e5f6789abcdef0123456789abcdef0123456789abcdef0123456789ab\r\nUse this token in the Authorization header: Bearer a1b2c3d4e5f6789abcdef0123456789abcdef0123456789abcdef0123456789ab\r\n```\r\n\r\n**Option 2: Custom token via command line (recommended for production)**\r\n```bash\r\nnpx @notionhq/notion-mcp-server --transport http --auth-token \"your-secret-token\"\r\n```\r\n\r\n**Option 3: Custom token via environment variable (recommended for production)**\r\n```bash\r\nAUTH_TOKEN=\"your-secret-token\" npx @notionhq/notion-mcp-server --transport http\r\n```\r\n\r\nThe command line argument `--auth-token` takes precedence over the `AUTH_TOKEN` environment variable if both are provided.\r\n\r\n##### Making HTTP Requests\r\nAll requests to the Streamable HTTP transport must include the bearer token in the Authorization header:\r\n\r\n```bash\r\n# Example request\r\ncurl -H \"Authorization: Bearer your-token-here\" \\\r\n     -H \"Content-Type: application/json\" \\\r\n     -H \"mcp-session-id: your-session-id\" \\\r\n     -d '{\"jsonrpc\": \"2.0\", \"method\": \"initialize\", \"params\": {}, \"id\": 1}' \\\r\n     http://localhost:3000/mcp\r\n```\r\n\r\n**Note:** Make sure to set either the `NOTION_TOKEN` environment variable (recommended) or the `OPENAPI_MCP_HEADERS` environment variable with your Notion integration token when using either transport mode.\r\n\r\n### Examples\r\n\r\n1. Using the following instruction\r\n```\r\nComment \"Hello MCP\" on page \"Getting started\"\r\n```\r\n\r\nAI will correctly plan two API calls, `v1/search` and `v1/comments`, to achieve the task\r\n\r\n2. Similarly, the following instruction will result in a new page named \"Notion MCP\" added to parent page \"Development\"\r\n```\r\nAdd a page titled \"Notion MCP\" to page \"Development\"\r\n```\r\n\r\n3. You may also reference content ID directly\r\n```\r\nGet the content of page 1a6b35e6e67f802fa7e1d27686f017f2\r\n```\r\n\r\n### Development\r\n\r\nBuild\r\n\r\n```\r\nnpm run build\r\n```\r\n\r\nExecute\r\n\r\n```\r\nnpx -y --prefix /path/to/local/notion-mcp-server @notionhq/notion-mcp-server\r\n```\r\n\r\nPublish\r\n\r\n```\r\nnpm publish --access public\r\n```\r\n","readmeFilename":"README.md"}