Provides full note management capabilities including reading, creating, updating, and deleting notes, with advanced search features supporting boolean operators, phrase matching, tag and date filters.
Simplenote MCP Server

A lightweight MCP server that integrates Simplenote with Claude Desktop using the MCP Python SDK.
This allows Claude Desktop to interact with your Simplenote notes as a memory backend or content source.
π What's New in v1.9.0
Major Performance Breakthrough - Production Ready!
Version 1.9.0 delivers a 98% startup performance improvement and marks the project as fully production-ready for Claude Desktop integration:
π Startup Time: Reduced from 55+ seconds to < 1 second (98% improvement)
β Claude Desktop Ready: Fixed critical timeout issue preventing MCP integration
π Code Quality: 21% reduction in high-complexity functions, Phase 1 refactoring complete
π Complete Documentation: Comprehensive guides, templates, and production validation
π― Zero Technical Debt: 0 open issues, 0 open PRs, all quality gates passing
π Grade A+ Health: 756 tests passing, 69.64% coverage, 100% CI success rate
Key Improvements:
Thread pool execution for blocking Simplenote API calls
True non-blocking cache initialization with background loading
Graceful empty cache handling during startup
Enhanced monitoring and complexity analysis tools
GitHub issue templates for better community engagement
See the CHANGELOG for complete details.
π§ Features
π Full Note Management: Read, create, update, and delete Simplenote notes
π Advanced Search: Boolean operators, phrase matching, tag and date filters
β‘ High Performance: In-memory caching with background synchronization
π Secure Authentication: Token-based authentication via environment variables
π§© MCP Compatible: Works with Claude Desktop and other MCP clients
π³ Docker Ready: Full containerization with multi-stage builds and security hardening
π Monitoring: Optional HTTP endpoints for health, readiness, and metrics
π§ͺ Robust Testing: Comprehensive test suite with 700+ tests and continuous integration
π Security Hardened: Regular security scanning with Bandit, pip-audit, and dependency checks
π Quick Start
Prerequisites
Simplenote account (create one at simplenote.com)
Python 3.10+ (for non-Docker installs) or Docker
Option 1: Docker (Recommended)
The fastest way to get started is using our pre-built Docker image:
Docker Health Checks: The container includes built-in health monitoring endpoints:
Health:
http://localhost:8000/healthReadiness:
http://localhost:8000/readyMetrics:
http://localhost:8000/metrics(Prometheus format)
Or use Docker Compose:
Option 2: Smithery (One-click install)
Install automatically via Smithery:
This method automatically configures Claude Desktop with the MCP server.
Option 3: Traditional Python Install
π Documentation Map & Archives
Start with
docs/DOCUMENTATION_GUIDE.mdfor a curated tour of user, developer, and operations docs plus maintenance checklists.Historical project summaries now live under
docs/archive/2025/, keeping the repository root focused on active roadmaps and guides.Need something fast? Run
rg "<topic>" docs/or jump todocs/index.mdfor the MkDocs-style table of contents.
π³ Docker Deployment
Container Features
Multi-stage builds for optimized image size
Security hardening with non-root user and minimal attack surface
Health monitoring endpoints built-in
Resource limits and proper signal handling
Volume support for persistent data
Using Pre-built Images
The easiest way to use the server is with our pre-built Docker images:
Available tags:
latest- Latest stable releasev1.10.0- Specific versionmain- Latest development build
Production Deployment
Development with Docker
Docker Features
Multi-stage build for optimized image size (346MB)
Multi-platform support:
linux/amd64andlinux/arm64Security hardening: Non-root user, read-only filesystem, no new privileges
Health checks and automatic restart policies
Resource limits: 1 CPU, 512MB memory
Logging: Persistent log volumes
Environment-based configuration
CI/CD Pipeline: Automated builds and publishing to Docker Hub
Security scanning: Trivy vulnerability scanning on all images
Container signing: Sigstore cosign signatures for supply chain security
Kubernetes ready: Production-grade Helm chart with security hardening
Automated updates: Dependabot for dependencies, auto-versioning workflows
Health monitoring: Continuous health checks and alerting
Enterprise notifications: Slack and email integration for CI/CD status
βΈοΈ Kubernetes Deployment
Using Helm (Recommended)
Deploy to Kubernetes with our production-ready Helm chart:
Kubernetes Features
Security hardening: Non-root user, read-only filesystem, dropped capabilities
Resource management: CPU/memory limits and requests configured
Auto-scaling: Horizontal Pod Autoscaler support
Health checks: Liveness and readiness probes
External secrets: Integration with external secret management
Service mesh ready: Compatible with Istio and other service meshes
Production Configuration
βοΈ Configuration
Environment Variables
Variable | Required | Default | Description |
| Yes | - | Your Simplenote account email |
| Yes | - | Your Simplenote account password |
| No | 120 | Cache synchronization interval |
| No | INFO | Logging level (DEBUG, INFO, WARNING, ERROR) |
Claude Desktop Integration
Add to your claude_desktop_config.json:
π Advanced Search
Powerful search with boolean logic and filters:
π οΈ Available Tools
Tool | Description | Parameters |
| Create a new note |
|
| Update an existing note |
|
| Move a note to trash |
|
| Get a note by ID |
|
| Advanced search with filters |
|
| Add tags to a note |
|
| Remove tags from a note |
|
| Replace all tags on a note |
|
π Performance & Caching
In-memory caching with background synchronization
Pagination support for large note collections
Indexed lookups for tags and content
Query result caching for repeated searches
Optimized API usage with minimal Simplenote calls
π― Recent Improvements
β January 2025 - Performance & Code Quality
Critical Bug Fix:
Fixed Claude Desktop timeout - Reduced startup time from 55+ seconds to < 1 second (98% improvement)
Implemented thread pool execution for blocking Simplenote API calls
Made cache initialization truly non-blocking with background loading
Resolved
anyio.BrokenResourceErrorduring shutdown
Code Refactoring - Phase 1 Complete:
Cache module complexity reduced: 5 high-complexity functions (CC >= 15) β 0 (100% reduction)
Maintainability improved: Cache MI from 12.7 β 16.2 (+28%)
Extracted 23 helper methods for better code organization
All 670 tests passing with 67% cache coverage maintained
See
REFACTORING_PHASE1_COMPLETE.mdfor details
Documentation Enhancements:
Added comprehensive
CHANGELOG.mdwith complete version historyCreated
TESTING_CLAUDE_DESKTOP.mdfor user testing guideAdded code complexity analysis tools (
check_complexity.py)Documented refactoring plan and completion reports
Quality Tools:
Integrated Radon for automated complexity analysis
Baseline metrics: 22 functions CC >= 15 (down from 28)
Average Maintainability Index: 57.9 (maintained)
Zero diagnostics errors, all quality gates passing
β September 2025 - Quality & Reliability Enhancements
β Quality & Reliability Enhancements
Test Suite Stabilization:
Fixed test isolation issues that caused intermittent failures
Improved test cleanup with proper timeout handling
Enhanced fixture management for better test reliability
Achieved consistent test results across individual and suite runs
CI/CD Pipeline Optimization:
Consolidated 28 workflows down to 16 active workflows
Implemented unified monitoring workflow combining security, health, and badge checks
Improved test coverage reporting with realistic 15.6% baseline
Enhanced Docker build validation and security scanning
Code Quality Improvements:
All linting (Ruff), formatting, and type checking (MyPy) now pass consistently
Zero high-severity security vulnerabilities (verified with Bandit, pip-audit, safety)
Standardized code formatting and pre-commit hooks configuration
Enhanced error handling and user-facing error messages
π§ Developer Experience
Improved Testing:
724 comprehensive tests covering core functionality
Function-scoped fixtures for better test isolation
Realistic coverage baseline established (15.6%)
Streamlined test execution with proper cleanup
Enhanced Documentation:
Updated deployment guides with current Docker setup
Improved health monitoring endpoint documentation
Added troubleshooting guides for common issues
Current status and roadmap documentation
Container Improvements:
Multi-stage Docker builds for optimized image size
Built-in health monitoring endpoints (
/health,/ready,/metrics)Enhanced security hardening with non-root user
Improved signal handling and graceful shutdown
π§ͺ Testing & Evaluation
MCP Evaluations β
Status: β WORKING - Complete mcp-evals integration with TypeScript wrapper!
This project includes comprehensive evaluations using mcp-evals to ensure reliability and performance:
Latest Test Results: 4/5 tests passing excellently (avg 4.1/5):
Server Startup: 4.6/5 β (Excellent)
Authentication: 4.0/5 β (Good)
Note Operations: 3.8/5 β (Good)
Search: 5.0/5 β (Perfect)
Error Handling: 1.4/5 β οΈ (Needs improvement)
Evaluation Types
Smoke Tests: Basic functionality validation
CRUD Operations: Note creation, reading, updating, deletion
Search & Filtering: Boolean search, tag filtering, date ranges
Error Handling: Authentication, network issues, edge cases
Performance: Large datasets, concurrent operations
Security: Input validation, authentication enforcement
Automated Testing
Evaluations run automatically on:
Pull Requests: Smoke + basic tests
Releases: Comprehensive evaluation suite
Manual Trigger: Full test matrix with detailed reporting
The evaluations use OpenAI's GPT models to assess:
Accuracy: Correctness of responses
Completeness: Thoroughness of results
Relevance: Response appropriateness
Clarity: Response readability
Performance: Operation efficiency
π See evals/README.md for detailed evaluation documentation.
Traditional Testing
π‘οΈ Security
Token-based authentication via environment variables
No hardcoded credentials in Docker images
Security-hardened containers with non-root users
Read-only filesystem in production containers
Resource limits to prevent abuse
π¨ Troubleshooting
Common Issues
Authentication Problems:
Verify
SIMPLENOTE_EMAILandSIMPLENOTE_PASSWORDare set correctlyCheck for typos in credentials
Docker Issues:
Claude Desktop Connection:
Diagnostic Commands
π Development
Quick Setup with mcp-evals
Local Development
Development Environment
The setup script creates:
Python development environment with all dependencies
Node.js environment for mcp-evals
Example configuration files
Pre-commit hooks
Validation for all evaluation files
Testing Strategy
Unit Tests: Traditional Python pytest for core logic
Integration Tests: MCP protocol compliance testing
Smoke Tests: Quick validation of basic functionality
Evaluation Tests: LLM-based assessment of real-world usage
Performance Tests: Load and stress testing
Running MCP Evaluations
Docker Method (Recommended)
Due to potential permission issues with tsx, we recommend running MCP evaluations in Docker:
Direct Method (if permissions allow)
Docker Development
π€ Contributing
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Related Projects
β Support the Project
If you find this project helpful, please consider giving it a star on GitHub! Your support helps:
π Increase visibility for other developers who might benefit from this tool
πͺ Motivate continued development and maintenance
π Build community around the Model Context Protocol ecosystem
π‘οΈ Validate trust through community engagement
β Star this repository β it takes just one click and means a lot!