Notion MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides a standardized interface for interacting with Notion's API, allowing users to list and query databases, create and update pages, and search across a Notion workspace.

Notion MCP Server

A Model Context Protocol (MCP) server implementation for Notion integration, providing a standardized interface for interacting with Notion's API.

Features

  • List and query Notion databases
  • Create and update pages
  • Search across Notion workspace
  • Full async/await support
  • Type-safe with Pydantic models
  • Proper error handling

Installation

  1. Clone the repository:
git clone https://github.com/ccabanillas/notion-mcp.git cd notion-mcp
  1. Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e .
  1. Create a .env file in the project root:
NOTION_API_KEY=your_notion_integration_token

Usage

  1. Test the server(it should just run without errors):
python -m notion_mcp
  1. To actually use it with Claude Desktop as intended you need to adjust your claude_desktop_config.json file
"notion-mcp": { "command": "/Users/username/Projects/notion-mcp/venv/bin/python3", <--Path your virtual environment "args": ["-m", "notion_mcp"], "cwd": "/Users/username/Projects/notion-mcp" <-- Path to your project },

Development

Project Structure

notion-mcp/ ├── src/ │ └── notion_mcp/ │ ├── models/ │ │ ├── __init__.py │ │ └── notion.py │ ├── __init__.py │ ├── __main__.py │ ├── client.py │ └── server.py ├── .env ├── .gitignore ├── pyproject.toml └── README.md

Running Tests

pytest

Configuration

The server requires a Notion integration token. To set this up:

  1. Go to https://www.notion.so/my-integrations
  2. Create a new integration
  3. Copy the integration token
  4. Add it to your .env file

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT License - Use at your own risk

Acknowledgments

  • Built to work with Claude Desktop
  • Uses Notion's API
  • Special thanks to [danhilse], I referenced his notion-mcp-server project
-
security - not tested
A
license - permissive license
-
quality - not tested

A Model Context Protocol server that provides a standardized interface for interacting with Notion's API, enabling users to list databases, create pages, and search across their Notion workspace.

  1. Features
    1. Installation
      1. Usage
        1. Development
          1. Project Structure
          2. Running Tests
        2. Configuration
          1. Contributing
            1. License
              1. Acknowledgments