使用说明
MCP任务管理系统
A完整 模型上下文协议(MCP) 使用本地LLM集成实现。NET、MCPSharp和Ollama。该系统提供了一个由人工智能驱动的会话式任务管理应用程序,该应用程序具有完全在本地运行的现代DateTimeWASM UI。
🏗️ 建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Blazor WASM │ │ Ollama LLM │ │ Task Service │
│ (Frontend) │◄──►│ (Container) │◄──►│ (Backend) │
│ Port: 8080 │ │ Port: 11434 │ │ Port: 5000 │
│ MudBlazor UI │ │ Local Models │ │ REST API │
└─────────────────┘ └─────────────────┘ └─────────────────┘
🚀 Docker快速入门(推荐)
先决条件
- Docker桌面 已安装并正在运行
- Docker Compose (通常包含在Docker桌面中)
- 8GB+内存 (适用于LLM型号)
- 10GB+可用磁盘空间 (适用于模型和容器)
一个命令设置
窗户:
start.bat
macOS/Linux:
./start.sh
手册:
docker-compose up --build -d
访问您的应用程序
- 🌐 用户界面: http://localhost:8080
- 仪表盘:任务统计和概述
- 任务管理:创建、编辑、删除和筛选任务
- AI聊天:Ollama LLM的自然语言任务管理
- 深色模式:在浅色和深色主题之间切换(默认为深色模式)
- 🔧 任务服务API: http://localhost:5001
- 🤖 API Ollama: http://localhost:11434
首次运行注意事项
- 型号下载:首次运行下载LLM模型(~4GB)
- 设置时间:5-10分钟,取决于网络速度
- 监控进度:
docker-compose logs -f ollama
🛠️ 手动设置(替代)
先决条件
- .NET 9.0 SDK
- 没有 (适用于本地LLM模型)
- Git
1.安装Olama
macOS:
brew install ollama
Linux:
curl -fsSL https://ollama.ai/install.sh | sh
窗户: 下载自 去.ai
2.启动Ollama并拉一个模型
# Start Ollama service
ollama serve
# In another terminal, pull a model
ollama pull llama2:7b
3.克隆和构建
git clone <your-repo>
cd McpServer
dotnet restore
dotnet build
4.环境配置
创建一个 .env 文件基于 env.example:
# Ollama model name (e.g., llama2:7b, mistral:7b, codellama:7b)
MCP_OLLAMA_MODEL=llama2:7b
# Path to your MCP server executable
MCP_SERVER_PATH=/path/to/McpServer.Server/bin/Debug/net9.0/McpServer.Server.exe
5.设置环境变量
export MCP_OLLAMA_MODEL="llama2:7b"
export MCP_SERVER_PATH="/path/to/McpServer.Server/bin/Debug/net9.0/McpServer.Server.exe"
6.运行应用程序
# Start the MCP server
cd McpServer.Server
dotnet run
# In another terminal, run the client
cd McpServer.Client
dotnet run
🎯 运作原理
任务管理流程
- 用户输入:通过Blazor UI或API的自然语言任务请求
- LLM处理:Ollama接收请求并以结构化JSON进行响应
- 任务操作:系统对任务执行CRUD操作
- 响应:结果显示在现代UI中
UI功能
- 📊 仪表盘:实时任务统计和概述
- 📝 任务管理:具有过滤和排序功能的完整CRUD操作
- 💬 AI聊天:用于任务管理的自然语言界面
- 🌙 深色模式:美丽的深色主题(默认),带灯光模式切换
- 📱 响应式:适用于台式机、平板电脑和移动设备
交互示例
User: "Add a task to buy groceries tomorrow"
LLM: { "operation": "create", "task": { "title": "Buy groceries", "dueDate": "tomorrow" } }
Result: Task created successfully and displayed in UI
User: "Show me all tasks"
LLM: { "operation": "read", "filter": "all" }
Result: Tasks displayed in table with filtering options
User: "Mark the grocery task as done"
LLM: { "operation": "update", "taskId": "123", "task": { "status": "completed" } }
Result: Task updated and UI refreshed
📁 项目结构
McpServer/
├── McpServer.LLM/ # LLM integration using Ollama HTTP API
├── McpServer.Client/ # Task management client and API
├── McpServer.Server/ # MCP server implementation
├── McpServer.Client.UI.Client/ # Blazor WASM UI with MudBlazor
│ ├── Pages/ # Application pages (Dashboard, Tasks, Chat)
│ ├── Layout/ # Main layout and navigation
│ ├── Components/ # Reusable UI components
│ ├── Models/ # Data models and DTOs
│ └── wwwroot/ # Static assets and configuration
├── docker-compose.yml # Container orchestration
├── Dockerfile # Task service container
├── start.sh # Linux/macOS startup script
├── start.bat # Windows startup script
└── README.md # This file
🔧 Docker命令
管理
# Start services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down
# Restart services
docker-compose restart
# Rebuild and start
docker-compose up --build -d
个人服务
# View Ollama logs
docker-compose logs -f ollama
# View task service logs
docker-compose logs -f task-service
# View UI logs
docker-compose logs -f blazor-ui
🐛 故障排除
Docker问题
- Docker未运行:启动Docker桌面
- 端口冲突:检查端口8080、5000或11434是否正在使用中
- 内存不足:增加Docker内存限制(建议8GB+)
Ollama问题
- 未找到型号:
docker-compose logs ollama检查下载进度 - 连接被拒绝:等待Ollama完全启动
- 反应缓慢:第一次运行将模型加载到内存中
应用程序问题
- UI未加载:检查DateTimecontainer是否正在运行
- API错误:检查任务服务日志
- LLM错误:确认奥利玛健康
- 黑暗模式不工作:清除浏览器缓存并刷新
- 聊天没有响应:检查Ollama模型是否已加载并响应
使用不同的模型
# Pull different models
docker exec mcp-ollama ollama pull mistral:7b
docker exec mcp-ollama ollama pull codellama:7b
# Update environment variable
export MCP_OLLAMA_MODEL="mistral:7b"
docker-compose restart task-service
🚀 这种方法的好处
本地和私人
- 无云依赖:一切都在本地运行
- 数据隐私:你的任务永远不会离开你的机器
- 离线功能:安装后无需互联网即可工作
演出
- 快速响应:本地LLM推理
- 没有API限制:无限制使用
- 可定制的:使用任何Olama型号
开发者友好
- 易于设置:使用Docker执行一个命令
- 跨平台:适用于Windows、Mac、Linux
- 可扩展:易于添加新功能
现代UI体验
- 漂亮的界面:使用MudDisplay进行材料设计
- 深色模式:使用切换选项,易于入眼
- 响应式设计:适用于所有设备尺寸
- 实时更新:即时反馈和自动滚动聊天
🔮 未来的增强功能
- 更多LLM型号:支持不同型号
- 高级任务功能:重复任务、提醒、类别
- 用户认证:多用户支持
- 移动应用程序:React Native或Flutter伴侣
- API扩展:Webhook支持,外部集成
- 任务自动化: .NET Orleans集成用于自动化任务处理
- 增强的用户界面:更多主题、自定义和辅助功能
- 数据持久层:数据库集成(SQLite、PostgreSQL)
- 导出/导入:任务备份和共享功能
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 使用Docker进行测试
- 提交拉取请求
用AI管理任务快乐! 🎯
