notion_mcp_server
Sophisticated AI chatbot with long-term memory capabilities, complete Notion workspace integration, and MCP (Model Context Protocol) implementation. Features semantic, episodic, and procedural memory systems.
{
"notion-mcp-server-api-v2": {
"command": "python",
"args": [
"-m",
"notion_mcp_server.api_serverV2"
],
"env": {}
},
"notion-mcp-server-cli-v2": {
"command": "python",
"args": [
"-m",
"notion_mcp_server.serverV2"
],
"env": {}
}
}Notion MCP Server V2 ๐
A comprehensive Model Context Protocol (MCP) server for Notion integration with enhanced functionality, robust error handling, production-ready features, and bulletproof validation.
โจ Features
๐ง Core Operations
- โ Search: Find pages and databases with advanced filtering
- โ Page Operations: Create, read, update pages with full content support
- โ Content Management: Add paragraphs, headings, bullet points, todos, links, and bookmarks
- โ Database Operations: List and query databases
๐ Advanced Content Types (NEW)
- โ Bookmarks: Add external website links with URL validation
- โ Link to Page: Create internal links between Notion pages
- โ Rich Content: Support for all major Notion block types
- โ Content Splitting: Automatic handling of long content (2000+ chars)
๐ Analytics & Insights
- โ Workspace Analytics: Total pages, databases, recent activity
- โ Content Analytics: Structure analysis and metrics
- โ Activity Tracking: Recent edits and usage patterns
- โ Performance Metrics: Optimized with configurable timeouts
๐ Bulk Operations (OPTIMIZED)
- โ Smart Pagination: Prevents timeouts with configurable limits
- โ Bulk Content Addition: Add multiple content blocks at once
- โ Bulk Page Operations: Create and manage multiple pages
- โ Performance Controls: Optional block counts for faster responses
๐ API Interfaces
- โ FastAPI REST API: Production-ready HTTP endpoints
- โ Interactive CLI: Command-line interface for direct usage
- โ MCP Compatible: Full Model Context Protocol support
- โ Agent Integration: Unified endpoint for AI agents
๐ก๏ธ Production Features (ENHANCED)
- โ Bulletproof Validation: Comprehensive input validation and error handling
- โ Configuration Management: Environment-based settings
- โ Smart Error Recovery: Detailed error messages and recovery guidance
- โ Health Checks: Monitoring and status endpoints with feature detection
- โ Structured Logging: Configurable logging with performance insights
- โ CORS Support: Cross-origin resource sharing
- โ Timeout Optimization: Dynamic timeouts based on operation complexity
๐งช Testing & Quality (COMPREHENSIVE)
- โ 46KB Test Suite: 1,158 lines of comprehensive tests
- โ 13+ Test Categories: Core, content, bulk, links, analytics, edge cases
- โ Validation Testing: Tests for all error scenarios and edge cases
- โ Performance Testing: Timeout and optimization validation
- โ Detailed Reporting: JSON reports with timing and categorization
๐๏ธ Architecture
notion_mcp_server/
โโโ ๐ __init__.py # Package initialization
โโโ ๐ง config.py # Configuration management
โโโ ๐ api_serverV2.py # FastAPI REST API server (49KB)
โโโ ๐ป serverV2.py # Interactive CLI server
โโโ โ๏ธ core_operations.py # Basic CRUD operations
โโโ ๐ analytics_operations.py # Analytics and metrics
โโโ ๐ bulk_operations.py # Bulk processing
โโโ โ๏ธ update_operations.py # Content updates (35KB)
โโโ ๐ ๏ธ notion_utils.py # Utility functions
โโโ ๐งช test_server.py # Comprehensive test suite (48KB)
โโโ ๐ README.md # This file
๐ฆ Installation
Prerequisites
- Python 3.8+
- Notion account with integration token
- pip or conda package manager
Setup
- Install Dependencies
pip install notion-client fastapi uvicorn python-dotenv pydantic requests
- Environment Configuration
Create a.envfile in your project root:
# Required
NOTION_TOKEN=ntn_your_integration_token_here
# Optional Server Settings
HOST=0.0.0.0
PORT=8081
DEBUG=false
# Optional Feature Settings
MAX_PAGE_SIZE=100
DEFAULT_PAGE_SIZE=20
MAX_CONTENT_LENGTH=2000
ENABLE_ANALYTICS=true
ENABLE_BULK_OPERATIONS=true
# Optional Logging
LOG_LEVEL=INFO
- Get Your Notion Token
- Go to Notion Integrations
- Create a new integration
- Copy the token (starts with
ntn_) - Share your pages/databases with the integration
๐ Usage
1. FastAPI Server (Production)
Start the server:
python -m notion_mcp_server.api_serverV2
Server will be available at:
- API:
http://localhost:8081 - Documentation:
http://localhost:8081/docs - Health Check:
http://localhost:8081/health
2. Interactive CLI
python -m notion_mcp_server.serverV2
3. Python Integration
from notion_mcp_server import ComprehensiveNotionServer
import asyncio
async def example():
server = ComprehensiveNotionServer("your_notion_token")
await server.core_ops.search_content("search term")
asyncio.run(example())
๐ API Documentation
๐ Search Endpoint
POST /api/search
Content-Type: application/json
{
"query": "search term",
"page_size": 10
}
๐ Create Page
POST /api/page/create
Content-Type: application/json
{
"title": "My New Page",
"content": "Initial content",
"parent_id": "optional-parent-page-id"
}
๐ Read Page
POST /api/page/read
Content-Type: application/json
{
"identifier": "page-id-or-title"
}
โ๏ธ Add Content (ENHANCED)
POST /api/page/add-content
Content-Type: application/json
{
"page_id": "page-id",
"content_type": "paragraph",
"content": "New paragraph content"
}
Supported content types:
paragraph- Regular textheading_1- Large headingheading_2- Medium headingheading_3- Small headingbulleted_list_item- Bullet pointto_do- Checkbox itembookmark- External website link (NEW)link_to_page- Internal page link (NEW)
๐ Link Content Types (NEW)
Add Bookmark (External Link):
POST /api/page/add-content
Content-Type: application/json
{
"page_id": "page-id",
"content_type": "bookmark",
"content": "OpenAI Website",
"url": "https://www.openai.com"
}
Add Link to Page (Internal Link):
POST /api/page/add-content
Content-Type: application/json
{
"page_id": "page-id",
"content_type": "link_to_page",
"content": "Link to related page",
"page_reference": "target-page-id-or-title"
}
๐ Bulk Content Addition (ENHANCED)
POST /api/page/bulk-add-content
Content-Type: application/json
{
"page_id": "page-id",
"items": [
{
"content_type": "heading_2",
"content": "Section Title"
},
{
"content_type": "paragraph",
"content": "Paragraph content"
},
{
"content_type": "bookmark",
"url": "https://example.com",
"content": "External Link"
},
{
"content_type": "link_to_page",
"page_reference": "other-page-id",
"content": "Internal Link"
},
{
"content_type": "to_do",
"content": "Task item",
"checked": false
}
]
}
๐ Analytics
POST /api/analytics
Content-Type: application/json
{
"type": "workspace"
}
Analytics types: workspace, content, activity, database
๐ Bulk Operations (OPTIMIZED)
POST /api/bulk
Content-Type: application/json
{
"operation": "list",
"query": "{\"limit\": 10, \"include_block_counts\": false}"
}
Optimization options:
limit: Number of pages to process (1-50)include_block_counts: Whether to calculate block counts (slower)
Operations: list, analyze, create
๐ค Agent Integration
POST /api/agent/query
Content-Type: application/json
{
"action": "search",
"parameters": {
"query": "search term",
"page_size": 10
}
}
Available actions: search, read_page, create_page, add_content, bulk_add_content, analytics, bulk_operations
๐งช Testing (COMPREHENSIVE)
Run the comprehensive test suite:
# Start the server first
python -m notion_mcp_server.api_serverV2
# In another terminal, run tests
cd src/notion_mcp_server
python test_server.py
Test Coverage (1,158 lines, 13+ categories):
- โ Core Operations: Health checks, search, page creation/reading
- โ Content Addition: All content types including links and bookmarks
- โ Bulk Content: Multiple content blocks and optimization
- โ Link Functionality: Bookmark and link_to_page validation
- โ Analytics: All analytics types and performance
- โ Bulk Operations: Optimized pagination and limits
- โ Agent Integration: All agent query actions
- โ Edge Cases: Error handling, validation, timeouts
- โ Exception Handling: Network issues, invalid inputs
Test Features:
- ๐ฏ Detailed Reporting: Success rates, timing, categorization
- ๐ Performance Insights: Response times and bottlenecks
- ๐ JSON Reports: Exportable test results with timestamps
- ๐งน Cleanup Scripts: Automatic test data management
โ๏ธ Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
NOTION_TOKEN | (required) | Your Notion integration token |
HOST | 0.0.0.0 | Server host address |
PORT | 8081 | Server port |
DEBUG | false | Enable debug mode |
MAX_PAGE_SIZE | 100 | Maximum results per page |
DEFAULT_PAGE_SIZE | 20 | Default results per page |
MAX_CONTENT_LENGTH | 2000 | Maximum content block length |
ENABLE_ANALYTICS | true | Enable analytics endpoints |
ENABLE_BULK_OPERATIONS | true | Enable bulk operations |
LOG_LEVEL | INFO | Logging level |
Configuration Validation
The server automatically validates all configuration on startup and provides clear error messages for invalid settings.
๐ง Integration Examples
With AI Agents
import requests
# Search for content
response = requests.post("http://localhost:8081/api/agent/query", json={
"action": "search",
"parameters": {"query": "project notes"}
})
# Create a new page with links
response = requests.post("http://localhost:8081/api/agent/query", json={
"action": "create_page",
"parameters": {
"title": "AI Generated Page",
"content": "This page was created by an AI agent"
}
})
# Add bookmark to page
response = requests.post("http://localhost:8081/api/agent/query", json={
"action": "add_content",
"parameters": {
"page_id": "page-id",
"content_type": "bookmark",
"content": "Useful Resource",
"url": "https://example.com"
}
})
With Your Chatbot
# Already integrated in your chatbot_agentic_v3.py!
# Enhanced with ALL new functions:
# Core functions
server.notion_search_content()
server.notion_read_page()
server.notion_create_page()
# Content addition with links
server.notion_add_paragraph()
server.notion_add_heading()
server.notion_add_bullet_point()
server.notion_add_todo()
# Smart content helpers
server.notion_add_structured_content() # Multi-section content
server.notion_add_smart_content() # AI-friendly content parsing
# Bulk operations
server.notion_bulk_create_pages()
server.notion_bulk_list_pages()
server.notion_bulk_analyze_pages()
# Analytics
server.notion_workspace_analytics()
server.notion_content_analytics()
server.notion_activity_analytics()
๐ Performance Features (ENHANCED)
- Async Operations: Non-blocking I/O for better performance
- Smart Timeouts: Dynamic timeouts (30s standard, 60s bulk, 45s analytics)
- Pagination Controls: Configurable limits to prevent timeouts
- Connection Pooling: Efficient Notion API connections
- Request Validation: Fast input validation and sanitization
- Error Recovery: Graceful handling of API failures
- Memory Efficient: Optimized for low memory usage
- Progress Yielding: Prevents blocking during bulk operations
๐ก๏ธ Security & Validation Features (BULLETPROOF)
- Token Validation: Automatic Notion token validation
- Input Sanitization: Protection against malicious input
- Comprehensive Validation: All content types validated
- Bookmark URLs must be valid HTTP/HTTPS
- Page references must exist
- Content length limits enforced
- Required fields validation
- Rate Limiting Ready: Framework for rate limiting (configurable)
- CORS Support: Secure cross-origin requests
- Environment Isolation: Secure environment variable handling
- HTTP Status Handling: Proper error code processing
๐ Error Handling (ENHANCED)
The server provides detailed error messages for all scenarios:
Validation Errors
- Missing URLs: "URL is required for bookmark content type"
- Invalid Page References: "Target page not found: page-name"
- Empty Content: "Content cannot be empty"
- Invalid Content Types: Clear list of supported types
API Errors
- Invalid Tokens: Clear guidance for token setup
- Missing Pages: Helpful suggestions for page access
- API Limits: Graceful handling of Notion API limits
- Network Issues: Automatic retry mechanisms
- Timeout Prevention: Smart limits and pagination
HTTP Status Codes
- 200: Successful operations
- 400: Validation errors (missing fields, invalid formats)
- 404: Resource not found (pages, invalid references)
- 500: Server errors (with detailed diagnostics)
- 503: Server not initialized
๐ Version History
V2.1.0 (Current) (MAJOR UPDATE)
- ๐ Link Functionality: Bookmarks and link_to_page support
- ๐ก๏ธ Bulletproof Validation: Comprehensive input validation
- โก Timeout Optimization: Fixed bulk operations with smart pagination
- ๐งช Enhanced Test Suite: 48KB comprehensive testing (1,158 lines)
- ๐ HTTP Status Handling: Proper error code processing in tests
- ๐ฏ Performance Controls: Configurable timeouts and limits
- ๐ Smart Content: AI-friendly content parsing helpers
V2.0.0 (Previous)
- โ Complete rewrite with enhanced features
- โ Configuration management system
- โ Basic test suite
- โ Production-ready error handling
- โ Bulk operations support
- โ Enhanced content management
- โ Agent integration endpoints
V1.0.0 (Legacy)
- โ Basic MCP server functionality
- โ Core operations (search, read, create)
- โ Simple CLI interface
๐ค Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes with tests
- Run the comprehensive test suite:
python test_server.py - Ensure all tests pass (aim for 90%+ success rate)
- Submit a pull request
Testing Requirements:
- All new features must include tests
- Validation scenarios must be covered
- Performance implications should be documented
- Error handling paths must be tested
๐ Support
If you encounter issues:
- Check Configuration: Ensure all environment variables are set correctly
- Verify Token: Make sure your Notion token is valid and has proper permissions
- Run Health Check: Visit
/healthendpoint to verify server status - Run Test Suite: Use
python test_server.pyto identify specific issues - Check Logs: Review server logs for detailed error messages
- Test Validation: Ensure your content meets validation requirements
Common Issues:
- Link validation errors: Ensure URLs start with http/https
- Timeout issues: Use pagination controls for large operations
- Page not found: Verify page sharing with integration
- Content too long: Content blocks limited to 2000 characters
๐ง Contact Information
For direct support or questions:
- ๐ฑ Phone: +918449035579
- ๐ง Email: ankitmalik844903@gmail.com
- ๐จโ๐ป Developer: Ankit Malik
Feel free to reach out for:
- โ Technical support and troubleshooting
- โ Feature requests and suggestions
- โ Integration assistance
- โ Bug reports and issues
- โ Custom development needs
๐ License
This project is part of the Agentic Long-Term Memory system.
๐ Your Notion MCP Server V2.1 is bulletproof and production-ready!
โก New in V2.1:
- ๐ Link Support - Bookmarks and internal page links
- ๐ก๏ธ Bulletproof Validation - Comprehensive error prevention
- โก Timeout Optimization - Smart pagination and limits
- ๐งช 48KB Test Suite - Comprehensive testing and reporting
- ๐ฏ Performance Controls - Configurable timeouts and limits
๐ Quality Metrics:
- 1,158 lines of test coverage
- 13+ test categories including edge cases
- 90%+ success rate target for all operations
- Sub-5 second response times for optimized operations
Notion MCP Server V2 ๐
A comprehensive Model Context Protocol (MCP) server for Notion integration with enhanced functionality, robust error handling, production-ready features, and bulletproof validation.
โจ Features
๐ง Core Operations
- โ Search: Find pages and databases with advanced filtering
- โ Page Operations: Create, read, update pages with full content support
- โ Content Management: Add paragraphs, headings, bullet points, todos, links, and bookmarks
- โ Database Operations: List and query databases
๐ Advanced Content Types (NEW)
- โ Bookmarks: Add external website links with URL validation
- โ Link to Page: Create internal links between Notion pages
- โ Rich Content: Support for all major Notion block types
- โ Content Splitting: Automatic handling of long content (2000+ chars)
๐ Analytics & Insights
- โ Workspace Analytics: Total pages, databases, recent activity
- โ Content Analytics: Structure analysis and metrics
- โ Activity Tracking: Recent edits and usage patterns
- โ Performance Metrics: Optimized with configurable timeouts
๐ Bulk Operations (OPTIMIZED)
- โ Smart Pagination: Prevents timeouts with configurable limits
- โ Bulk Content Addition: Add multiple content blocks at once
- โ Bulk Page Operations: Create and manage multiple pages
- โ Performance Controls: Optional block counts for faster responses
๐ API Interfaces
- โ FastAPI REST API: Production-ready HTTP endpoints
- โ Interactive CLI: Command-line interface for direct usage
- โ MCP Compatible: Full Model Context Protocol support
- โ Agent Integration: Unified endpoint for AI agents
๐ก๏ธ Production Features (ENHANCED)
- โ Bulletproof Validation: Comprehensive input validation and error handling
- โ Configuration Management: Environment-based settings
- โ Smart Error Recovery: Detailed error messages and recovery guidance
- โ Health Checks: Monitoring and status endpoints with feature detection
- โ Structured Logging: Configurable logging with performance insights
- โ CORS Support: Cross-origin resource sharing
- โ Timeout Optimization: Dynamic timeouts based on operation complexity
๐งช Testing & Quality (COMPREHENSIVE)
- โ 46KB Test Suite: 1,158 lines of comprehensive tests
- โ 13+ Test Categories: Core, content, bulk, links, analytics, edge cases
- โ Validation Testing: Tests for all error scenarios and edge cases
- โ Performance Testing: Timeout and optimization validation
- โ Detailed Reporting: JSON reports with timing and categorization
๐๏ธ Architecture
notion_mcp_server/
โโโ ๐ __init__.py # Package initialization
โโโ ๐ง config.py # Configuration management
โโโ ๐ api_serverV2.py # FastAPI REST API server (49KB)
โโโ ๐ป serverV2.py # Interactive CLI server
โโโ โ๏ธ core_operations.py # Basic CRUD operations
โโโ ๐ analytics_operations.py # Analytics and metrics
โโโ ๐ bulk_operations.py # Bulk processing
โโโ โ๏ธ update_operations.py # Content updates (35KB)
โโโ ๐ ๏ธ notion_utils.py # Utility functions
โโโ ๐งช test_server.py # Comprehensive test suite (48KB)
โโโ ๐ README.md # This file
๐ฆ Installation
Prerequisites
- Python 3.8+
- Notion account with integration token
- pip or conda package manager
Setup
- Install Dependencies
pip install notion-client fastapi uvicorn python-dotenv pydantic requests
- Environment Configuration
Create a.envfile in your project root:
# Required
NOTION_TOKEN=ntn_your_integration_token_here
# Optional Server Settings
HOST=0.0.0.0
PORT=8081
DEBUG=false
# Optional Feature Settings
MAX_PAGE_SIZE=100
DEFAULT_PAGE_SIZE=20
MAX_CONTENT_LENGTH=2000
ENABLE_ANALYTICS=true
ENABLE_BULK_OPERATIONS=true
# Optional Logging
LOG_LEVEL=INFO
- Get Your Notion Token
- Go to Notion Integrations
- Create a new integration
- Copy the token (starts with
ntn_) - Share your pages/databases with the integration
๐ Usage
1. FastAPI Server (Production)
Start the server:
python -m notion_mcp_server.api_serverV2
Server will be available at:
- API:
http://localhost:8081 - Documentation:
http://localhost:8081/docs - Health Check:
http://localhost:8081/health
2. Interactive CLI
python -m notion_mcp_server.serverV2
3. Python Integration
from notion_mcp_server import ComprehensiveNotionServer
import asyncio
async def example():
server = ComprehensiveNotionServer("your_notion_token")
await server.core_ops.search_content("search term")
asyncio.run(example())
๐ API Documentation
๐ Search Endpoint
POST /api/search
Content-Type: application/json
{
"query": "search term",
"page_size": 10
}
๐ Create Page
POST /api/page/create
Content-Type: application/json
{
"title": "My New Page",
"content": "Initial content",
"parent_id": "optional-parent-page-id"
}
๐ Read Page
POST /api/page/read
Content-Type: application/json
{
"identifier": "page-id-or-title"
}
โ๏ธ Add Content (ENHANCED)
POST /api/page/add-content
Content-Type: application/json
{
"page_id": "page-id",
"content_type": "paragraph",
"content": "New paragraph content"
}
Supported content types:
paragraph- Regular textheading_1- Large headingheading_2- Medium headingheading_3- Small headingbulleted_list_item- Bullet pointto_do- Checkbox itembookmark- External website link (NEW)link_to_page- Internal page link (NEW)
๐ Link Content Types (NEW)
Add Bookmark (External Link):
POST /api/page/add-content
Content-Type: application/json
{
"page_id": "page-id",
"content_type": "bookmark",
"content": "OpenAI Website",
"url": "https://www.openai.com"
}
Add Link to Page (Internal Link):
POST /api/page/add-content
Content-Type: application/json
{
"page_id": "page-id",
"content_type": "link_to_page",
"content": "Link to related page",
"page_reference": "target-page-id-or-title"
}
๐ Bulk Content Addition (ENHANCED)
POST /api/page/bulk-add-content
Content-Type: application/json
{
"page_id": "page-id",
"items": [
{
"content_type": "heading_2",
"content": "Section Title"
},
{
"content_type": "paragraph",
"content": "Paragraph content"
},
{
"content_type": "bookmark",
"url": "https://example.com",
"content": "External Link"
},
{
"content_type": "link_to_page",
"page_reference": "other-page-id",
"content": "Internal Link"
},
{
"content_type": "to_do",
"content": "Task item",
"checked": false
}
]
}
๐ Analytics
POST /api/analytics
Content-Type: application/json
{
"type": "workspace"
}
Analytics types: workspace, content, activity, database
๐ Bulk Operations (OPTIMIZED)
POST /api/bulk
Content-Type: application/json
{
"operation": "list",
"query": "{\"limit\": 10, \"include_block_counts\": false}"
}
Optimization options:
limit: Number of pages to process (1-50)include_block_counts: Whether to calculate block counts (slower)
Operations: list, analyze, create
๐ค Agent Integration
POST /api/agent/query
Content-Type: application/json
{
"action": "search",
"parameters": {
"query": "search term",
"page_size": 10
}
}
Available actions: search, read_page, create_page, add_content, bulk_add_content, analytics, bulk_operations
๐งช Testing (COMPREHENSIVE)
Run the comprehensive test suite:
# Start the server first
python -m notion_mcp_server.api_serverV2
# In another terminal, run tests
cd src/notion_mcp_server
python test_server.py
Test Coverage (1,158 lines, 13+ categories):
- โ Core Operations: Health checks, search, page creation/reading
- โ Content Addition: All content types including links and bookmarks
- โ Bulk Content: Multiple content blocks and optimization
- โ Link Functionality: Bookmark and link_to_page validation
- โ Analytics: All analytics types and performance
- โ Bulk Operations: Optimized pagination and limits
- โ Agent Integration: All agent query actions
- โ Edge Cases: Error handling, validation, timeouts
- โ Exception Handling: Network issues, invalid inputs
Test Features:
- ๐ฏ Detailed Reporting: Success rates, timing, categorization
- ๐ Performance Insights: Response times and bottlenecks
- ๐ JSON Reports: Exportable test results with timestamps
- ๐งน Cleanup Scripts: Automatic test data management
โ๏ธ Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
NOTION_TOKEN | (required) | Your Notion integration token |
HOST | 0.0.0.0 | Server host address |
PORT | 8081 | Server port |
DEBUG | false | Enable debug mode |
MAX_PAGE_SIZE | 100 | Maximum results per page |
DEFAULT_PAGE_SIZE | 20 | Default results per page |
MAX_CONTENT_LENGTH | 2000 | Maximum content block length |
ENABLE_ANALYTICS | true | Enable analytics endpoints |
ENABLE_BULK_OPERATIONS | true | Enable bulk operations |
LOG_LEVEL | INFO | Logging level |
Configuration Validation
The server automatically validates all configuration on startup and provides clear error messages for invalid settings.
๐ง Integration Examples
With AI Agents
import requests
# Search for content
response = requests.post("http://localhost:8081/api/agent/query", json={
"action": "search",
"parameters": {"query": "project notes"}
})
# Create a new page with links
response = requests.post("http://localhost:8081/api/agent/query", json={
"action": "create_page",
"parameters": {
"title": "AI Generated Page",
"content": "This page was created by an AI agent"
}
})
# Add bookmark to page
response = requests.post("http://localhost:8081/api/agent/query", json={
"action": "add_content",
"parameters": {
"page_id": "page-id",
"content_type": "bookmark",
"content": "Useful Resource",
"url": "https://example.com"
}
})
With Your Chatbot
# Already integrated in your chatbot_agentic_v3.py!
# Enhanced with ALL new functions:
# Core functions
server.notion_search_content()
server.notion_read_page()
server.notion_create_page()
# Content addition with links
server.notion_add_paragraph()
server.notion_add_heading()
server.notion_add_bullet_point()
server.notion_add_todo()
# Smart content helpers
server.notion_add_structured_content() # Multi-section content
server.notion_add_smart_content() # AI-friendly content parsing
# Bulk operations
server.notion_bulk_create_pages()
server.notion_bulk_list_pages()
server.notion_bulk_analyze_pages()
# Analytics
server.notion_workspace_analytics()
server.notion_content_analytics()
server.notion_activity_analytics()
๐ Performance Features (ENHANCED)
- Async Operations: Non-blocking I/O for better performance
- Smart Timeouts: Dynamic timeouts (30s standard, 60s bulk, 45s analytics)
- Pagination Controls: Configurable limits to prevent timeouts
- Connection Pooling: Efficient Notion API connections
- Request Validation: Fast input validation and sanitization
- Error Recovery: Graceful handling of API failures
- Memory Efficient: Optimized for low memory usage
- Progress Yielding: Prevents blocking during bulk operations
๐ก๏ธ Security & Validation Features (BULLETPROOF)
- Token Validation: Automatic Notion token validation
- Input Sanitization: Protection against malicious input
- Comprehensive Validation: All content types validated
- Bookmark URLs must be valid HTTP/HTTPS
- Page references must exist
- Content length limits enforced
- Required fields validation
- Rate Limiting Ready: Framework for rate limiting (configurable)
- CORS Support: Secure cross-origin requests
- Environment Isolation: Secure environment variable handling
- HTTP Status Handling: Proper error code processing
๐ Error Handling (ENHANCED)
The server provides detailed error messages for all scenarios:
Validation Errors
- Missing URLs: "URL is required for bookmark content type"
- Invalid Page References: "Target page not found: page-name"
- Empty Content: "Content cannot be empty"
- Invalid Content Types: Clear list of supported types
API Errors
- Invalid Tokens: Clear guidance for token setup
- Missing Pages: Helpful suggestions for page access
- API Limits: Graceful handling of Notion API limits
- Network Issues: Automatic retry mechanisms
- Timeout Prevention: Smart limits and pagination
HTTP Status Codes
- 200: Successful operations
- 400: Validation errors (missing fields, invalid formats)
- 404: Resource not found (pages, invalid references)
- 500: Server errors (with detailed diagnostics)
- 503: Server not initialized
๐ Version History
V2.1.0 (Current) (MAJOR UPDATE)
- ๐ Link Functionality: Bookmarks and link_to_page support
- ๐ก๏ธ Bulletproof Validation: Comprehensive input validation
- โก Timeout Optimization: Fixed bulk operations with smart pagination
- ๐งช Enhanced Test Suite: 48KB comprehensive testing (1,158 lines)
- ๐ HTTP Status Handling: Proper error code processing in tests
- ๐ฏ Performance Controls: Configurable timeouts and limits
- ๐ Smart Content: AI-friendly content parsing helpers
V2.0.0 (Previous)
- โ Complete rewrite with enhanced features
- โ Configuration management system
- โ Basic test suite
- โ Production-ready error handling
- โ Bulk operations support
- โ Enhanced content management
- โ Agent integration endpoints
V1.0.0 (Legacy)
- โ Basic MCP server functionality
- โ Core operations (search, read, create)
- โ Simple CLI interface
๐ค Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes with tests
- Run the comprehensive test suite:
python test_server.py - Ensure all tests pass (aim for 90%+ success rate)
- Submit a pull request
Testing Requirements:
- All new features must include tests
- Validation scenarios must be covered
- Performance implications should be documented
- Error handling paths must be tested
๐ Support
If you encounter issues:
- Check Configuration: Ensure all environment variables are set correctly
- Verify Token: Make sure your Notion token is valid and has proper permissions
- Run Health Check: Visit
/healthendpoint to verify server status - Run Test Suite: Use
python test_server.pyto identify specific issues - Check Logs: Review server logs for detailed error messages
- Test Validation: Ensure your content meets validation requirements
Common Issues:
- Link validation errors: Ensure URLs start with http/https
- Timeout issues: Use pagination controls for large operations
- Page not found: Verify page sharing with integration
- Content too long: Content blocks limited to 2000 characters
๐ง Contact Information
For direct support or questions:
- ๐ฑ Phone: +918449035579
- ๐ง Email: ankitmalik844903@gmail.com
- ๐จโ๐ป Developer: Ankit Malik
Feel free to reach out for:
- โ Technical support and troubleshooting
- โ Feature requests and suggestions
- โ Integration assistance
- โ Bug reports and issues
- โ Custom development needs
๐ License
This project is part of the Agentic Long-Term Memory system.
๐ Your Notion MCP Server V2.1 is bulletproof and production-ready!
โก New in V2.1:
- ๐ Link Support - Bookmarks and internal page links
- ๐ก๏ธ Bulletproof Validation - Comprehensive error prevention
- โก Timeout Optimization - Smart pagination and limits
- ๐งช 48KB Test Suite - Comprehensive testing and reporting
- ๐ฏ Performance Controls - Configurable timeouts and limits
๐ Quality Metrics:
- 1,158 lines of test coverage
- 13+ test categories including edge cases
- 90%+ success rate target for all operations
- Sub-5 second response times for optimized operations
Related MCP Servers
markitdown-mcp
Python tool for converting files and office documents to Markdown.
fetch
Model Context Protocol Servers
memory
Model Context Protocol Servers
mindsdb
AI Analytics Engine that can answer questions over large scale data. - The only MCP Server you'll ever need
fastmcp
๐ The fast, Pythonic way to build MCP servers and clients
screenpipe
AI app store powered by 24/7 desktop history. open source | 100% local | dev friendly | 24/7 screen, mic recording
