Notion MCP Server logo

Notion MCP Server

by ccabanillas

Notion MCP Server is a Model Context Protocol (MCP) server implementation for Notion integration. It provides a standardized interface for interacting with Notion's API and is compatible with Claude Desktop and other MCP clients.

View on GitHub

Last updated: N/A

What is Notion MCP Server?

Notion MCP Server is a server that acts as an intermediary between Notion's API and MCP clients like Claude Desktop. It provides a standardized way to interact with Notion databases, pages, and search functionality.

How to use Notion MCP Server?

  1. Clone the repository. 2. Create a virtual environment and install dependencies. 3. Create a .env file with your Notion API key. 4. Run the server. 5. Configure your MCP client (e.g., Claude Desktop) to connect to the server.

Key features of Notion MCP Server

  • List and query Notion databases

  • Create and update pages

  • Search across Notion workspace

  • Get database details and block children

  • Full async/await support with httpx

  • Type-safe with Pydantic v2 models

  • Proper error handling with detailed logging

  • Compatibility with MCP 1.6.0

Use cases of Notion MCP Server

  • Integrating Notion data with AI assistants like Claude

  • Building custom applications that interact with Notion

  • Automating tasks within Notion

  • Creating workflows that combine Notion with other services

FAQ from Notion MCP Server

How do I get a Notion API key?

Go to https://www.notion.so/my-integrations and create a new integration. Copy the integration token.

How do I give my integration access to my Notion databases?

From the database's 'Share' menu, invite the integration.

What is MCP?

MCP stands for Model Context Protocol. It's a standardized interface for interacting with large language models and related services.

Why am I getting connection errors?

Make sure your Notion API key is correct, you have internet access, and the server is running.

Claude Desktop isn't connecting. What do I do?

Check that your config path in claude_desktop_config.json is correct and that the server is running without logging to stdout.