Notes MCP Server
Enhanced MCP Server
A comprehensive Model Context Protocol (MCP) server with centralized communication, service orchestration, load balancing, advanced error handling, real-time WebSocket communication, performance optimization, security features, and comprehensive monitoring capabilities.
๐ฏ Project Status
โ FULLY FUNCTIONAL & PRODUCTION-READY - The enhanced MCP server is complete and running successfully!
โ 100% Test Success Rate - All 12 end-to-end tests passing
โ All Phase 1 features implemented and tested
โ All Phase 2 advanced features implemented and tested
โ Server starts without errors
โ All 7 core services + 4 advanced services registered and operational
โ 5 note management tools available
โ Load balancing and connection pooling active
โ Error handling and recovery systems operational
โ Real-time WebSocket communication working
โ Performance optimization features active
โ Security features implemented and tested
โ Comprehensive monitoring and analytics operational
โ MCP protocol communication verified
โ File operations working correctly
โ Production-ready with comprehensive testing suite
Features
๐ Core Features (Phase 1)
Centralized Communication: Unified communication layer for service orchestration
Service Orchestration: Advanced service management and coordination
Load Balancing: Multiple load balancing strategies (round-robin, least-connections, weighted, etc.)
Connection Pooling: Efficient connection management with health monitoring
Modular Architecture: Clean separation of concerns with service-based design
๐ก๏ธ Reliability & Performance
Circuit Breaker Pattern: Automatic failure detection and recovery
Error Handling: Comprehensive error classification and recovery strategies
Request/Response Management: Advanced response formatting and caching
Health Monitoring: Real-time service health checks and metrics
Graceful Shutdown: Clean service termination with resource cleanup
๐ง Middleware & Configuration
Middleware System: Pluggable middleware for request/response processing
Configuration Management: Environment-based configuration with validation
Rate Limiting: Built-in rate limiting and request throttling
CORS Support: Cross-origin resource sharing configuration
Logging: Structured logging with Winston
๐ Advanced Features (Phase 2)
Real-time WebSocket Communication: Live chat, notifications, and room management
Performance Optimization: Advanced caching (LRU, TTL), compression, async processing
Security Features: JWT authentication, input validation, rate limiting, IP blocking
Comprehensive Monitoring: Real-time metrics, system monitoring, business analytics
End-to-End Testing: Automated test suite with 100% success rate
๐ง Phase 2 Services
WebSocketManager: Real-time communication, chat rooms, notifications
PerformanceOptimizer: LRU caching, TTL caching, Gzip compression, async processing
SecurityManager: JWT authentication, input validation, rate limiting, IP blocking
MonitoringAnalytics: Real-time metrics, system monitoring, business analytics, alerting
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Enhanced MCP Server โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Security Layer (JWT Auth, Input Validation, Rate Limiting)โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Middleware Layer (CORS, Compression, Request Processing) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Request Handler (MCP Protocol Implementation) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Service Orchestration Layer โ
โ โโโ Communication Manager โ
โ โโโ Service Registry โ
โ โโโ Load Balancer โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Advanced Services Layer (Phase 2) โ
โ โโโ WebSocket Manager (Real-time Communication) โ
โ โโโ Performance Optimizer (Caching, Compression) โ
โ โโโ Security Manager (Auth, Validation, Monitoring) โ
โ โโโ Monitoring & Analytics (Metrics, Alerts, Reports) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Infrastructure Layer โ
โ โโโ Connection Pool โ
โ โโโ Error Handler โ
โ โโโ Response Manager โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Tools Layer (Notes Management) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโInstallation
Clone the repository:
git clone <repository-url>
cd notes-mcp-serverInstall dependencies:
npm installConfigure the server (optional):
# The server comes with a default config.json file
# Edit config.json with your settings if neededInitialize Git repository (if not already done):
git init
git add .
git commit -m "Initial commit: Enhanced MCP Server"๐ Project Files
Core Files
src/server.js- Main server implementationsrc/config/index.js- Configuration managementconfig.json- Server configurationpackage.json- Dependencies and scripts
Services
src/services/CommunicationManager.js- Service orchestrationsrc/services/ResponseManager.js- Response handlingsrc/services/ErrorHandler.js- Error managementsrc/services/ConnectionPool.js- Connection poolingsrc/services/LoadBalancer.js- Load balancingsrc/services/ServiceRegistry.js- Service registrysrc/services/WebSocketManager.js- Real-time WebSocket communicationsrc/services/PerformanceOptimizer.js- Performance optimization and cachingsrc/services/SecurityManager.js- Security, authentication, and validationsrc/services/MonitoringAnalytics.js- Monitoring, metrics, and analytics
Tools
src/tools/listNotes.js- List notes toolsrc/tools/readNote.js- Read note toolsrc/tools/createNote.js- Create note toolsrc/tools/updateNote.js- Update note toolsrc/tools/deleteNote.js- Delete note tool
Testing & Documentation
tests/run-e2e.js- End-to-end test runnertests/e2e/TestSuite.js- Comprehensive test suitequick-test.js- Quick test scripttest-simple.js- Advanced test scripttest-client.js- MCP client for testingREADME.md- This documentationTESTING_GUIDE.md- Detailed testing instructionsPHASE2_FEATURES.md- Phase 2 features documentation.gitignore- Git ignore rules
Auto-Generated
notes/- Notes storage directory (created automatically)node_modules/- Dependencies (created by npm install)
Quick Start
The server is ready to run out of the box! Simply start it with:
npm startYou should see output like:
2025-09-12T10:12:33.679Z [INFO] Service registered: tool-list-notes (list-notes)
2025-09-12T10:12:33.685Z [INFO] Service registered: tool-read-note (read-note)
2025-09-12T10:12:33.685Z [INFO] Service registered: tool-create-note (create-note)
2025-09-12T10:12:33.685Z [INFO] Service registered: tool-update-note (update-note)
2025-09-12T10:12:33.685Z [INFO] Service registered: tool-delete-note (delete-note)
2025-09-12T10:12:33.686Z [INFO] Service registered: communication-manager (Communication Manager)
2025-09-12T10:12:33.686Z [INFO] Service registered: load-balancer (Load Balancer)
2025-09-12T10:12:33.688Z [INFO] Starting Enhanced MCP Server...
2025-09-12T10:12:34.364Z [INFO] Enhanced MCP Server started successfully
2025-09-12T10:12:34.365Z [INFO] Server: enhanced-notes-mcp-server v2.0.0
2025-09-12T10:12:34.366Z [INFO] Notes directory: ./notes
2025-09-12T10:12:34.367Z [INFO] Registered tools: 5
2025-09-12T10:12:34.367Z [INFO] Registered services: 7๐งช Testing
Comprehensive End-to-End Testing
Run the complete test suite with 100% success rate:
npm testThis will verify all 12 test categories:
โ Server Startup - Server initialization and startup
โ Service Registration - All 7 core services + 4 advanced services
โ MCP Protocol Communication - JSON-RPC protocol handling
โ Tool Execution - All 5 note management tools
โ File Operations - File creation, reading, and management
โ Error Handling - Error scenarios and recovery
โ Performance - Response times and throughput
โ Security - Authentication and validation features
โ WebSocket Communication - Real-time communication
โ Load Balancing - Load distribution and balancing
โ Monitoring - Metrics collection and analytics
โ Graceful Shutdown - Clean server termination
Expected Test Results
๐ Enhanced MCP Server - End-to-End Test Runner
================================================
๐งช Starting End-to-End Test Suite
=====================================
๐ Running: Server Startup
โ
Server Startup: PASSED (2454ms)
๐ Running: Service Registration
โ
Service Registration: PASSED (1ms)
๐ Running: MCP Protocol Communication
โ
MCP Protocol Communication: PASSED (12ms)
๐ Running: Tool Execution
โ
Tool Execution: PASSED (7ms)
๐ Running: File Operations
โ
File Operations: PASSED (2006ms)
๐ Running: Error Handling
โ
Error Handling: PASSED (4ms)
๐ Running: Performance
โ
Performance: PASSED (2017ms)
๐ Running: Security
โ
Security: PASSED (4ms)
๐ Running: WebSocket Communication
โ
WebSocket Communication: PASSED (1009ms)
๐ Running: Load Balancing
โ
Load Balancing: PASSED (1ms)
๐ Running: Monitoring
โ
Monitoring: PASSED (1ms)
๐ Running: Graceful Shutdown
โ
Graceful Shutdown: PASSED (13ms)
๐ Test Results Summary
========================
โ
Passed: 12
โ Failed: 0
๐ Success Rate: 100.0%
๐ All tests passed! The enhanced MCP server is working perfectly.Quick Testing
For quick verification:
node quick-test.jsAdvanced Testing
For detailed testing:
node test-simple.jsUsage
Start the Server
# Production mode
npm start
# Development mode with auto-reload
npm run dev
# Health check
npm run healthConfiguration
The server can be configured via config.json or environment variables:
{
"server": {
"name": "enhanced-notes-mcp-server",
"version": "2.0.0",
"maxConnections": 100,
"timeout": 30000
},
"services": {
"orchestration": {
"enabled": true,
"maxConcurrentRequests": 50,
"requestTimeout": 10000
}
},
"middleware": {
"rateLimit": {
"enabled": true,
"windowMs": 900000,
"maxRequests": 100
}
}
}Environment Variables
PORT: Server port (default: 3000)HOST: Server host (default: localhost)LOG_LEVEL: Logging level (default: info)NOTES_DIR: Notes directory path (default: ./notes)
API Reference
MCP Tools
The server provides the following MCP tools:
list-notes
List all available notes.
Parameters: None
Response:
{
"content": [
{
"type": "text",
"text": "[\"note1.txt\", \"note2.txt\"]"
}
]
}read-note
Read the content of a specific note.
Parameters:
noteName(string): Name of the note file
Response:
{
"content": [
{
"type": "text",
"text": "Note content here..."
}
]
}create-note
Create a new note.
Parameters:
noteName(string): Name of the note filetext(string): Content of the note
Response:
{
"content": [
{
"type": "text",
"text": "Note 'noteName' created successfully."
}
]
}update-note
Update an existing note.
Parameters:
noteName(string): Name of the note filetext(string): New content of the note
Response:
{
"content": [
{
"type": "text",
"text": "Note 'noteName' updated successfully."
}
]
}delete-note
Delete a note.
Parameters:
noteName(string): Name of the note file
Response:
{
"content": [
{
"type": "text",
"text": "Note 'noteName' deleted successfully."
}
]
}Service Management
Service Registry
The server maintains a registry of all available services:
// Get all services
const services = serviceRegistry.getAllServices();
// Get services by type
const toolServices = serviceRegistry.getServicesByType('tool');
// Get service health
const health = serviceRegistry.getRegistryHealth();Load Balancing
Multiple load balancing strategies are supported:
Round Robin: Distributes requests evenly
Least Connections: Routes to service with fewest active connections
Weighted Round Robin: Considers service weights
Least Response Time: Routes to fastest responding service
Priority Based: Routes based on service priority
Random: Random selection
// Set load balancing strategy
loadBalancer.setStrategy('least-connections');Health Monitoring
The server provides comprehensive health monitoring:
// Get overall health status
const health = server.getHealthStatus();
// Get service-specific health
const serviceHealth = serviceRegistry.getRegistryHealth();
const loadBalancerHealth = loadBalancer.getHealthStatus();Error Handling
The server implements sophisticated error handling:
Error Types
Service Errors: SERVICE_NOT_FOUND, SERVICE_UNAVAILABLE, SERVICE_TIMEOUT
Validation Errors: VALIDATION_ERROR, INVALID_PARAMETERS
Authentication Errors: UNAUTHORIZED, FORBIDDEN
System Errors: INTERNAL_ERROR, RESOURCE_EXHAUSTED
Circuit Breaker Errors: CIRCUIT_BREAKER_OPEN
Recovery Strategies
Retry: Automatic retry with exponential backoff
Fallback: Graceful degradation with fallback responses
Circuit Breaker: Automatic service isolation on failure
Monitoring and Metrics
Response Statistics
const stats = responseManager.getResponseStats();
// Returns: total, successful, failed, successRate, averageResponseTimeError Metrics
const errorStats = errorHandler.getErrorMetrics();
// Returns: total, byType, byService, recent errorsConnection Pool Stats
const poolStats = connectionPool.getStats();
// Returns: total, available, busy, utilization percentageDevelopment
Project Structure
enhanced-notes-mcp-server/
โโโ src/
โ โโโ config/
โ โ โโโ index.js # Configuration management
โ โโโ middleware/
โ โ โโโ index.js # Middleware system
โ โโโ services/
โ โ โโโ CommunicationManager.js # Service orchestration
โ โ โโโ ResponseManager.js # Response handling
โ โ โโโ ErrorHandler.js # Error management
โ โ โโโ ConnectionPool.js # Connection pooling
โ โ โโโ LoadBalancer.js # Load balancing
โ โ โโโ ServiceRegistry.js # Service registry
โ โ โโโ WebSocketManager.js # Real-time WebSocket communication
โ โ โโโ PerformanceOptimizer.js # Performance optimization and caching
โ โ โโโ SecurityManager.js # Security, authentication, validation
โ โ โโโ MonitoringAnalytics.js # Monitoring, metrics, analytics
โ โโโ tools/
โ โ โโโ listNotes.js # List notes tool
โ โ โโโ readNote.js # Read note tool
โ โ โโโ createNote.js # Create note tool
โ โ โโโ updateNote.js # Update note tool
โ โ โโโ deleteNote.js # Delete note tool
โ โโโ logger.js # Logging configuration
โ โโโ server.js # Main server implementation
โโโ tests/
โ โโโ e2e/
โ โ โโโ TestSuite.js # Comprehensive end-to-end test suite
โ โโโ run-e2e.js # End-to-end test runner
โโโ notes/ # Notes storage directory (auto-created)
โโโ config.json # Server configuration
โโโ package.json # Project dependencies and scripts
โโโ README.md # This documentation
โโโ TESTING_GUIDE.md # Detailed testing instructions
โโโ PHASE2_FEATURES.md # Phase 2 features documentation
โโโ quick-test.js # Quick test script
โโโ test-simple.js # Advanced test script
โโโ test-client.js # MCP client for testing
โโโ .gitignore # Git ignore rulesAvailable Scripts
# Start the server
npm start
# Start with auto-reload (development)
npm run dev
# Run comprehensive end-to-end tests
npm test
# Run quick test
npm run test:quick
# Run simple test
npm run test:simple
# Run MCP client test
node test-client.js
# Health check
npm run health
# Start monitoring dashboard
npm run monitor
# Security audit
npm run securityAdding New Tools
Create a new tool file in
src/tools/:
export default function myTool(DATA_DIR) {
return {
name: "my-tool",
description: "Description of my tool",
aliases: ["myTool", "my_tool"],
inputSchema: {
type: "object",
properties: {
param1: { type: "string", description: "Parameter description" }
},
required: ["param1"]
},
execute: async ({ param1 }) => {
// Tool implementation
return {
content: [{ type: "text", text: "Tool result" }]
};
}
};
}Register the tool in
src/server.js:
import myTool from "./tools/myTool.js";
// Add to toolsList
this.toolsList = [
// ... existing tools
myTool(this.dataDir),
];Adding New Services
Create a service class:
class MyService {
constructor() {
this.name = 'MyService';
this.version = '1.0.0';
}
async healthCheck() {
return true;
}
}Register the service:
serviceRegistry.registerService({
id: 'my-service',
name: 'My Service',
type: 'custom',
version: '1.0.0',
healthCheck: async () => myService.healthCheck()
});๐ง Git Setup
Initialize Git Repository
# Initialize git repository
git init
# Add all files
git add .
# Create initial commit
git commit -m "Initial commit: Enhanced MCP Server with centralized communication and service orchestration"
# Add remote origin (replace with your repository URL)
git remote add origin <your-repository-url>
# Push to remote
git push -u origin mainGit Workflow
# Check status
git status
# Add specific files
git add src/server.js
# Commit changes
git commit -m "Update server implementation"
# Push changes
git push origin main
# Create feature branch
git checkout -b feature/new-tool
# Merge feature branch
git checkout main
git merge feature/new-toolWhat's Ignored by Git
The .gitignore file excludes:
node_modules/- Dependenciesnotes/- User notes (contains sensitive data)*.log- Log files.env*- Environment filescoverage/- Test coverageIDE files (
.vscode/,.idea/)OS files (
.DS_Store,Thumbs.db)Temporary files (
*.tmp,*.temp)
๐ License
ISC License
๐ค Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureMake your changes
Add tests if applicable
Commit your changes:
git commit -m 'Add amazing feature'Push to the branch:
git push origin feature/amazing-featureSubmit a pull request
๐ Support
For issues and questions:
Create an issue in the repository
Check the
TESTING_GUIDE.mdfor troubleshootingReview the logs for error details
๐ฏ Roadmap
โ Completed Features
WebSocket support for real-time communication
Authentication and authorization (JWT)
API rate limiting and throttling
Metrics and monitoring dashboard
Performance optimization and caching
Comprehensive security features
End-to-end testing suite
Real-time analytics and monitoring
๐ Future Enhancements
Database integration for persistent storage
Docker containerization
Kubernetes deployment manifests
GraphQL API support
Microservices architecture
Distributed caching (Redis)
Message queuing (RabbitMQ/Apache Kafka)
Advanced AI/ML integration
Multi-tenant support
Advanced reporting and dashboards
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Surya07102000/Notes-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server