A Model Context Protocol (MCP) server implementation for Notion integration, providing a standardized interface for interacting with Notion's API.
3 stars1 watching0 forks
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
- Clone the repository:
git clone https://github.com/ccabanillas/notion-mcp.git
cd notion-mcp
- Create a virtual environment and install dependencies:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .
- Create a
.env
file in the project root:
NOTION_API_KEY=your_notion_integration_token
Usage
- Test the server(it should just run without errors):
python -m notion_mcp
- 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:
- Go to https://www.notion.so/my-integrations
- Create a new integration
- Copy the integration token
- Add it to your
.env
file
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - 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
Features
List
Query
Create
Update
Search
Async
Type-safe
Error-handling
Category
Knowledge & Memory