使用说明
增强型MCP服务器
一个全面的模型上下文协议(MCP)服务器,具有集中通信、服务编排、负载平衡、高级错误处理、实时WebSocket通信、性能优化、安全功能和全面的监控功能。
🎯 项目状态
✅ 功能齐全,可投入生产 -增强型MCP服务器已完成并成功运行!
- ✅ 100%测试成功率 -全部12个端到端测试通过
- ✅ 所有第1阶段功能均已实施和测试
- ✅ 已实施并测试所有第2阶段高级功能
- ✅ 服务器启动时没有错误
- ✅ 所有7项核心服务+4项高级服务已注册并投入运营
- ✅ 5个可用的笔记管理工具
- ✅ 负载平衡和连接池处于活动状态
- ✅ 错误处理和恢复系统正在运行
- ✅ 实时WebSocket通信工作
- ✅ 性能优化功能已激活
- ✅ 已实施和测试的安全功能
- ✅ 全面的监控和分析操作
- ✅ MCP协议通信已验证
- ✅ 文件操作正常工作
- ✅ 生产就绪,配备全面的测试套件
特性
🚀 核心功能(第一阶段)
- 集中通信:用于服务编排的统一通信层
- 服务编排:先进的服务管理和协调
- 负载平衡:多种负载平衡策略(循环、最少连接、加权等)
- 连接池:通过健康监测进行高效的连接管理
- 模块化架构:将关注点与基于服务的设计彻底分离
🛡️ 可靠性和性能
- 断路器型式:自动故障检测和恢复
- 错误处理:全面的错误分类和恢复策略
- 请求/响应管理:高级响应格式化和缓存
- 健康监测:实时服务健康检查和指标
- 优雅地关闭:通过资源清理来清理服务终止
🔧 中间件和配置
- 中间件系统:用于请求/响应处理的可插拔中间件
- 配置管理:基于环境的配置和验证
- 速率限制:内置速率限制和请求限制
- CORS支持:跨源资源共享配置
- 日志记录:使用Winston进行结构化日志记录
🌐 高级功能(第2阶段)
- 实时WebSocket通信:实时聊天、通知和房间管理
- 性能优化:高级缓存(LRU、TTL)、压缩、异步处理
- 安全功能:JWT身份验证、输入验证、速率限制、IP阻止
- 综合监控:实时指标、系统监控、业务分析
- 端到端测试:自动化测试套件,成功率100%
🔧 第二阶段服务
- WebSocket管理器:实时通信、聊天室、通知
- 性能优化器:LRU缓存、TTL缓存、Gzip压缩、异步处理
- 安全经理:JWT身份验证、输入验证、速率限制、IP阻止
- 监控分析:实时指标、系统监控、业务分析、警报
建筑
┌─────────────────────────────────────────────────────────────┐
│ 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) │
└─────────────────────────────────────────────────────────────┘
安装
- 克隆存储库:
git clone <repository-url>
cd notes-mcp-server
- 安装依赖项:
npm install
- 配置服务器(可选):
# The server comes with a default config.json file
# Edit config.json with your settings if needed
- 初始化Git存储库(如果尚未完成):
git init
git add .
git commit -m "Initial commit: Enhanced MCP Server"
📁 项目文件
核心文件
src/server.js-主服务器实现src/config/index.js-配置管理config.json-服务器配置package.json-依赖关系和脚本
服务
src/services/CommunicationManager.js-服务编排src/services/ResponseManager.js-响应处理src/services/ErrorHandler.js-错误管理src/services/ConnectionPool.js-连接池src/services/LoadBalancer.js-负载平衡src/services/ServiceRegistry.js-服务注册表src/services/WebSocketManager.js-实时WebSocket通信src/services/PerformanceOptimizer.js-性能优化和缓存src/services/SecurityManager.js-安全性、身份验证和确认src/services/MonitoringAnalytics.js-监控、指标和分析
工具
src/tools/listNotes.js-列表注释工具src/tools/readNote.js-阅读笔记工具src/tools/createNote.js-创建笔记工具src/tools/updateNote.js-更新笔记工具src/tools/deleteNote.js-删除笔记工具
测试和文件
tests/run-e2e.js-端到端测试流道tests/e2e/TestSuite.js-全面的测试套件quick-test.js-快速测试脚本test-simple.js-高级测试脚本test-client.js-MCP测试客户端README.md-本文件TESTING_GUIDE.md-详细的测试说明PHASE2_FEATURES.md-第2阶段特征文件.gitignore-Git忽略规则
自动生成
notes/-Notes存储目录(自动创建)node_modules/-依赖关系(由npm install创建)
快速开始
服务器已准备好开箱即用!只需从以下内容开始:
npm start
您应该看到如下输出:
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
🧪 测试
全面的端到端测试
以100%的成功率运行完整的测试套件:
npm test
这将验证所有12个测试类别:
- ✅ 服务器启动 -服务器初始化和启动
- ✅ 服务注册 -全部7项核心服务+4项高级服务
- ✅ MCP协议通信 -JSON-RPC协议处理
- ✅ 工具执行 -所有5个笔记管理工具
- ✅ 文件操作 -文件创建、读取和管理
- ✅ 错误处理 -错误场景和恢复
- ✅ 演出 -响应时间和吞吐量
- ✅ 安全 -身份验证和验证功能
- ✅ WebSocket通信 -实时通信
- ✅ 负载平衡 -负载分配和平衡
- ✅ 监控 -指标收集和分析
- ✅ 优雅地关闭 -清理服务器终止
预期测试结果
🚀 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.
快速测试
为了快速验证:
node quick-test.js
高级测试
详细测试:
node test-simple.js
用法
启动服务器
# Production mode
npm start
# Development mode with auto-reload
npm run dev
# Health check
npm run health
配置
服务器可以通过以下方式配置 config.json 或环境变量:
{
"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
}
}
}
环境变量
PORT:服务器端口(默认值:3000)HOST:服务器主机(默认:localhost)LOG_LEVEL:日志记录级别(默认值:info)NOTES_DIR:Notes目录路径(默认:./Notes)
api参考
MCP工具
服务器提供以下MCP工具:
list-notes
列出所有可用的笔记。
参数: 无
答复:
{
"content": [
{
"type": "text",
"text": "[\"note1.txt\", \"note2.txt\"]"
}
]
}
read-note
阅读特定笔记的内容。
参数:
noteName(string):笔记文件的名称
答复:
{
"content": [
{
"type": "text",
"text": "Note content here..."
}
]
}
create-note
创建新笔记。
参数:
noteName(string):笔记文件的名称text(string):注释内容
答复:
{
"content": [
{
"type": "text",
"text": "Note 'noteName' created successfully."
}
]
}
update-note
更新现有注释。
参数:
noteName(string):笔记文件的名称text(string):注释的新内容
答复:
{
"content": [
{
"type": "text",
"text": "Note 'noteName' updated successfully."
}
]
}
delete-note
删除注释。
参数:
noteName(string):笔记文件的名称
答复:
{
"content": [
{
"type": "text",
"text": "Note 'noteName' deleted successfully."
}
]
}
服务管理
服务注册中心
服务器维护所有可用服务的注册表:
// Get all services
const services = serviceRegistry.getAllServices();
// Get services by type
const toolServices = serviceRegistry.getServicesByType('tool');
// Get service health
const health = serviceRegistry.getRegistryHealth();
负载平衡
支持多种负载平衡策略:
- 轮询:平均分配请求
- 最少连接:活动连接最少的服务路线
- 加权轮询算法:考虑服务重量
- 最短响应时间:通往响应最快服务的路线
- 基于优先级:基于服务优先级的路线
- 随机:随机选择
// Set load balancing strategy
loadBalancer.setStrategy('least-connections');
健康监测
服务器提供全面的健康监控:
// Get overall health status
const health = server.getHealthStatus();
// Get service-specific health
const serviceHealth = serviceRegistry.getRegistryHealth();
const loadBalancerHealth = loadBalancer.getHealthStatus();
错误处理
服务器实现了复杂的错误处理:
错误类型
- 服务错误:SERVICE_NOT_FOUND、SERVICE_UNAVAILABLE、SERVICE_TIMEOUT
- 验证错误:VALIDATION_ERROR,INVALID_PARAMETERS
- 身份验证错误:未经授权,禁止
- 系统错误:内部错误,资源耗尽
- 断路器错误:断路器_开路
恢复策略
- 重试:使用指数回退自动重试
- 后备方案:具有回退响应的优雅降级
- 断路器:故障时自动隔离服务
监控和指标
响应统计
const stats = responseManager.getResponseStats();
// Returns: total, successful, failed, successRate, averageResponseTime
误差度量
const errorStats = errorHandler.getErrorMetrics();
// Returns: total, byType, byService, recent errors
连接池统计信息
const poolStats = connectionPool.getStats();
// Returns: total, available, busy, utilization percentage
发展
项目结构
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 rules
可用脚本
# 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 security
添加新工具
- 在中创建新的工具文件
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" }]
};
}
};
}
- 在中注册该工具
src/server.js:
import myTool from "./tools/myTool.js";
// Add to toolsList
this.toolsList = [
// ... existing tools
myTool(this.dataDir),
];
添加新服务
- 创建服务类:
class MyService {
constructor() {
this.name = 'MyService';
this.version = '1.0.0';
}
async healthCheck() {
return true;
}
}
- 注册服务:
serviceRegistry.registerService({
id: 'my-service',
name: 'My Service',
type: 'custom',
version: '1.0.0',
healthCheck: async () => myService.healthCheck()
});
🔧 Git设置
初始化Git仓库
# 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 main
Git工作流
# 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-tool
Git忽略了什么
这 .gitignore 文件不包括:
node_modules/-依赖关系notes/-用户笔记(包含敏感数据)*.log-日志文件.env*-环境文件coverage/-测试覆盖率- IDE文件(
.vscode/,.idea/) - 操作系统文件(
.DS_Store,Thumbs.db) - 临时文件(
*.tmp,*.temp)
📄 许可证
ISC许可证
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 进行更改
- 如果适用,添加测试
- 提交您的更改:
git commit -m 'Add amazing feature' - 推到分支:
git push origin feature/amazing-feature - 提交拉取请求
🆘 支持
对于问题和疑问:
- 在存储库中创建问题
- 检查
TESTING_GUIDE.md用于故障排除 - 查看日志以了解错误详细信息
🎯 路线图
✅ 已完成的功能
- [x] WebSocket支持实时通信
- [x] 身份验证和授权(JWT)
- [x] API速率限制和节流
- [x] 指标和监控仪表板
- [x] 性能优化和缓存
- [x] 全面的安全功能
- [x] 端到端测试套件
- [x] 实时分析和监控
🚀 未来的增强功能
- []用于持久存储的数据库集成
- []Docker容器化
- []Kubernetes部署清单
- []GraphQL API支持
- []微服务架构
- []分布式缓存(Redis)
- []消息队列(RabbitMQ/Apache Kafka)
- []先进的AI/ML集成
- []多租户支持
- []高级报告和仪表板
