研究MCP服务器
基于Python的模型上下文协议(MCP)服务器,用于全面的研究数据管理。此服务器通过Firebase Firestore提供用于管理艾森豪威尔矩阵任务、日常学习数据、统计分析和番茄工作时间会话的工具。
特性
📋 艾森豪威尔矩阵管理
- 获取任务:检索按优先级象限组织的所有任务
- 保存任务:存储和更新具有状态跟踪功能的任务列表
- 象限:HUHI(高紧急高重要),LUHI,HULI,LULI
📊 日常数据跟踪
- 月度数据:检索特定月份的每日研究数据
- 保存每日数据:记录每日学习情绪和总结
- 情感:放松、平衡、专注、紧张、不知所措、精疲力竭
📈 统计与分析
- 月度概览:综合统计数据包括:
- 研究概述(天、小时、条纹) - 情绪趋势和分布 - 生产率指标和完成率 - 象限性能分析 - 番茄钟见解
🍅 番茄钟时段管理
- 分析:获取详细的番茄工作时间会话分析
- 保存会话:记录工作/休息时间和完成状态
- 预设跟踪:监控不同预设的有效性
安装
先决条件
- Python 3.8+
- 启用Firestore的Firebase项目
- Firebase服务帐户密钥
设置
- 克隆存储库
git clone
cd study-mcp-server- 安装依赖项
pip install -r requirements.txt- 配置环境
cp env.example .env编辑 .env 使用您的Firebase凭据:
SERVICE_ACCOUNT_KEY_PATH=/path/to/your/firebase-service-account-key.json
FIREBASE_PROJECT_ID=your-firebase-project-id- Firebase设置
- 首选 Firebase控制台 - 创建新项目或选择现有项目 - 转到项目设置→ 服务账户 - 点击“生成新私钥” - 保存JSON文件并更新路径 .env - 在Firebase项目中启用Firestore数据库
用法
运行服务器
# Make the main module executable
chmod +x src/main.py
# Run the server
python src/main.pyMCP检验员测试
- 安装MCP检查器
npm install -g @modelcontextprotocol/inspector- 与检查员一起运行
mcp-inspector python src/main.py- 替代方法
mcp-inspector --command "python" --args "src/main.py"可用工具
服务器提供7个工具用于全面的研究管理:
艾森豪威尔矩阵
eisenhower_get_tasks-检索用户的所有任务eisenhower_save_tasks-保存/更新任务列表
每日数据
daily_data_get_monthly-获取特定月份的每日数据daily_data_save-保存每日研究数据输入
统计
stats_monthly_overview-获取全面的月度统计数据
番茄
pomodoro_get_analytics-获取番茄工作时间会话分析pomodoro_save_session-保存番茄工作日
示例用法
获取任务
{
"name": "eisenhower_get_tasks",
"arguments": {
"userId": "user-123"
}
}保存每日数据
{
"name": "daily_data_save",
"arguments": {
"userId": "user-123",
"day": 15,
"month": 12,
"year": 2024,
"emoji": "FOCUSED",
"summary": "Great study session today!"
}
}获取月度统计数据
{
"name": "stats_monthly_overview",
"arguments": {
"userId": "user-123",
"year": 2024,
"month": 12
}
}项目结构
study-mcp-server/
├── requirements.txt # Python dependencies
├── env.example # Environment variables template
├── README.md # This file
└── src/
├── __init__.py
├── main.py # Main server entry point
├── config.py # Configuration management
├── firebase_client.py # Firebase initialization
└── tools/
├── __init__.py
├── eisenhower.py # Task management tools
├── daily_data.py # Daily data tools
├── stats.py # Statistics tools
└── pomodoro.py # Pomodoro session tools数据结构
Firebase集合
users/{userId}/tasks-艾森豪威尔矩阵任务users/{userId}/dailyData-每日研究数据users/{userId}/pomodoroSessions-番茄工作时间记录
任务架构
{
"id": "string",
"title": "string",
"description": "string",
"quadrant": "HUHI|LUHI|HULI|LULI",
"status": "created|in_progress|completed",
"created_at": "ISO timestamp",
"updated_at": "ISO timestamp"
}每日数据模式
{
"day": "number",
"month": "number",
"year": "number",
"emoji": "RELAXED|BALANCED|FOCUSED|INTENSE|OVERWHELMED|BURNT_OUT",
"summary": "string"
}错误处理
服务器包括全面的错误处理:
- Firebase初始化错误
- 无效的工具参数
- 数据库操作失败
- 网络连接问题
所有错误都以JSON响应的形式返回,并带有描述性错误消息。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🔗 相关项目
该项目是更大的萨哈伊生态系统的一部分。以下是其他组件:
后端服务
- 后端API -FastAPI后端支持RESTful API和WebSocket
前端应用程序
人工智能和健康代理
- ADK健康机器人 -使用谷歌代理开发工具包的人工智能健康代理
附加功能
🧪 测试
运行测试
# Install test dependencies
pip install pytest pytest-asyncio
# Run unit tests
pytest tests/
# Run with coverage
pytest --cov=src tests/
# Run integration tests
pytest tests/integration/测试覆盖率
- 所有工具功能的单元测试
- Firebase操作的集成测试
- 错误处理验证
- 数据验证测试
- 性能测试
🚀 部署
生产设置
- 环境配置:
export SERVICE_ACCOUNT_KEY_PATH="/path/to/firebase-key.json"
export FIREBASE_PROJECT_ID="your-project-id"
export ENVIRONMENT="production"- Docker部署:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "src/main.py"]- 云部署:
- 谷歌云运行 - AWS Lambda - Azure容器实例 - 铁路
📊 演出
优化功能
- 连接池:高效的Firebase连接管理
- 批量操作:优化了数据库操作
- 缓存:对频繁访问的数据进行智能缓存
- 错误恢复:失败操作的自动重试机制
监控
- 数据库指标:跟踪Firestore的运营绩效
- 错误率:监控操作故障并发出警报
- 响应时间:跟踪工具执行性能
- 资源使用情况:监控内存和CPU使用情况
🔒 安全
安全特性
- Firebase安全规则:适当的访问控制和数据验证
- API密钥保护:安全处理Firebase凭据
- 输入验证:全面验证所有输入
- 错误处理:没有敏感数据的安全错误消息
数据保护
- 加密:所有在传输和静止时加密的数据
- 访问控制:基于用户的数据隔离
- 审计日志:全面记录合规性
- 数据保留:可配置的数据保留策略
🛠️ 发展
项目结构
study-mcp-server/
├── requirements.txt # Python dependencies
├── env.example # Environment variables template
├── README.md # This file
├── setup.py # Package setup
└── src/
├── __init__.py
├── main.py # Main server entry point
├── config.py # Configuration management
├── firebase_client.py # Firebase initialization
└── tools/
├── __init__.py
├── eisenhower.py # Task management tools
├── daily_data.py # Daily data tools
├── stats.py # Statistics tools
└── pomodoro.py # Pomodoro session tools开发指南
- 遵循PEP 8风格指南
- 添加全面的文档字符串
- 包括新功能的单元测试
- 更新API变更文档
- 确保维护Firebase安全规则
📈 分析与洞察
可用分析
- 学习模式:跟踪学习习惯和生产力趋势
- 情绪趋势:监测情绪状态和模式
- 任务绩效:分析任务完成情况和优先级
- 番茄工作效率:衡量焦点会议的生产力
数据可视化
- 月度概览图
- 情绪状态分布
- 任务完成率
- 生产率指标
- 研究条纹跟踪
🔧 配置
环境变量
SERVICE_ACCOUNT_KEY_PATH:Firebase服务帐户密钥的路径FIREBASE_PROJECT_ID:您的Firebase项目IDENVIRONMENT:环境(开发/生产)LOG_LEVEL:日志记录级别(调试/信息/警告/错误)
Firebase设置
- 项目配置:
- 创建Firebase项目 - 启用Firestore数据库 - 设置安全规则 - 生成服务帐户密钥
- 安全规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/{document=**} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
贡献指南
- 遵循现有代码样式
- 为新功能添加测试
- 根据需要更新文档
- 提交前确保所有测试通过
- 在讨论中保持尊重和建设性
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- Firebase团队提供卓越的数据库服务
- 标准化接口的模型上下文协议
- 各种库的Python社区
- 工具和灵感的开源社区
📞 支持
有关支持和问题:
- 检查 文档
- 在GitHub存储库中打开问题
- 联系开发团队
______________________________________________________________________
萨哈伊MCP服务器 -通过智能数据工具增强学习管理能力📚✨
