Cursor Notion MCP - Chat Logger
A Model Context Protocol (MCP) server that logs your Cursor AI chat interactions to Notion for analysis, documentation, and knowledge management.
🌟 Features
- ✅ Automatic Chat Logging: Log Cursor AI conversations to Notion with a single command
- ✅ MCP Protocol: Implements the official Model Context Protocol specification
- ✅ Easy Setup: Simple configuration via environment variables
- ✅ Rich Context: Captures prompt, response, user, context, and timestamp
- ✅ Notion Integration: Stores data in a structured Notion database
- ✅ Privacy First: Self-hosted, no third-party services
📋 Prerequisites
- Python 3.7 or higher
- Cursor IDE (with MCP support)
- Notion account with API access
requestslibrary (pip install requests)
🚀 Quick Start
1. Clone the Repository
git clone https://github.com/Creo-DRB1008/prompt-logger-mcp.git
cd cursor-notion-mcp
2. Install Dependencies
pip install -r requirements.txt
3. Set Up Notion
Create a Notion Integration
- Go to Notion Integrations
- Click "New integration"
- Name it "Cursor Chat Logger"
- Copy the Internal Integration Token (starts with
secret_)
Create a Notion Database
-
Create a new database in Notion
-
Add these properties:
- Prompt (Title) - The user's question
- Response (Text) - The AI's response
- User (Text) - User identifier
- Context (Text) - File/function context
- Timestamp (Date) - When it happened
-
Share the database with your integration:
- Click "Share" on the database
- Invite your integration
-
Get the Database ID from the URL:
https://notion.so/YOUR_WORKSPACE/DATABASE_ID?v=... ^^^^^^^^^^^^
4. Configure Cursor
Edit ~/.cursor/mcp.json (create if it doesn't exist):
{
"mcpServers": {
"notion-chat-logger": {
"command": "python3",
"args": [
"/ABSOLUTE/PATH/TO/cursor-notion-mcp/mcp_notion_server.py"
],
"env": {
"NOTION_API_KEY": "secret_YOUR_NOTION_INTEGRATION_TOKEN",
"NOTION_DATABASE_ID": "YOUR_DATABASE_ID"
}
}
}
}
Important: Replace:
/ABSOLUTE/PATH/TO/with the actual path to this repositorysecret_YOUR_NOTION_INTEGRATION_TOKENwith your Notion integration tokenYOUR_DATABASE_IDwith your Notion database ID
5. Restart Cursor
Quit Cursor completely (⌘Q on Mac, Alt+F4 on Windows/Linux) and reopen it.
6. Verify Installation
# Run the test script
python3 test_mcp_notion.py
You should see:
✅ Initialize response
✅ Found 1 tool(s)
✅ Successfully stored to Notion!
💡 Usage
In Cursor Chat
After having a conversation with Cursor AI, simply say:
Log this conversation to Notion
Or use the tool picker:
- Type
@in the chat - Select
store_chat_log - Fill in the details (or let the AI do it)
Manual Tool Call
You can also invoke the tool explicitly:
@store_chat_log
Prompt: "How do I implement OAuth?"
Response: "Here's how to implement OAuth..."
User: "your.email@example.com"
Context: "auth.py"
🧪 Testing
Quick Verification
./verify_cursor_mcp.sh
Full Test Suite
python3 test_mcp_notion.py
Manual MCP Protocol Test
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | python3 mcp_notion_server.py
📁 Project Structure
cursor-notion-mcp/
├── mcp_notion_server.py # Main MCP server
├── test_mcp_notion.py # Test suite
├── verify_cursor_mcp.sh # Quick verification script
├── requirements.txt # Python dependencies
├── README.md # This file
├── SETUP.md # Detailed setup guide
├── ARCHITECTURE.md # Technical architecture
└── LICENSE # MIT License
🔧 Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
NOTION_API_KEY | Yes | Your Notion integration token |
NOTION_DATABASE_ID | Yes | Your Notion database ID |
NOTION_VERSION | No | Notion API version (default: 2022-06-28) |
Notion Database Schema
Your Notion database must have these properties:
| Property | Type | Description |
|---|---|---|
| Prompt | Title | The user's question/prompt |
| Response | Text | The assistant's response |
| User | Text | User identifier (email) |
| Context | Text | File path, function name, etc. |
| Timestamp | Date | When the interaction occurred |
🐛 Troubleshooting
Server Not Showing in Cursor
- Check that
~/.cursor/mcp.jsonis valid JSON - Verify the absolute path to
mcp_notion_server.pyis correct - Restart Cursor completely (quit and reopen)
- Check Cursor logs:
~/Library/Logs/Cursor/(Mac) or%APPDATA%\Cursor\logs\(Windows)
Tool Not Appearing
- Verify the server is listed in Cursor Settings → Features → MCP
- Try typing the full tool name:
@store_chat_log - Check Developer Tools (Help → Toggle Developer Tools) for errors
Notion API Errors
- Verify your
NOTION_API_KEYis correct (starts withsecret_) - Verify your
NOTION_DATABASE_IDis correct (32 characters, hex) - Ensure the integration has access to the database (Share → Invite integration)
- Check that all required properties exist in the database
Python Errors
# Check Python version
python3 --version # Should be 3.7+
# Install dependencies
pip3 install -r requirements.txt
# Test the server directly
python3 mcp_notion_server.py
# Then type: {"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}
🔐 Security
⚠️ Important Security Notes:
- Never commit your Notion API key to version control
- Use environment variables for sensitive data
- Restrict integration permissions in Notion to only the databases you need
- Review logged data regularly to ensure no sensitive information is stored
- Consider encrypting sensitive fields before logging
Recommended: Use .env File
Instead of hardcoding credentials in mcp.json, use a .env file:
# .env
NOTION_API_KEY=secret_YOUR_TOKEN
NOTION_DATABASE_ID=YOUR_DATABASE_ID
Then update mcp.json:
{
"mcpServers": {
"notion-chat-logger": {
"command": "bash",
"args": [
"-c",
"source .env && python3 /path/to/mcp_notion_server.py"
]
}
}
}
📚 Documentation
- Setup Guide - Detailed setup instructions
- Architecture - Technical architecture and design
- MCP Specification - Official MCP docs
- Notion API - Notion API documentation
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Model Context Protocol - For the MCP specification
- Cursor - For the amazing AI-powered IDE
- Notion - For the powerful API and database
📞 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
🗺️ Roadmap
- Support for multiple Notion databases
- Filtering/redaction of sensitive data
- Export to other formats (CSV, JSON)
- Web dashboard for viewing logs
- Automatic tagging and categorization
- Search and analytics features
Made with ❤️ for the Cursor community
If you find this useful, please ⭐ star the repository!
