Mcp.TaskAndResearch
1.0.1
See the version list below for details.
dotnet tool install --global Mcp.TaskAndResearch --version 1.0.1
dotnet new tool-manifest
dotnet tool install --local Mcp.TaskAndResearch --version 1.0.1
#tool dotnet:?package=Mcp.TaskAndResearch&version=1.0.1
nuke :add-package Mcp.TaskAndResearch --version 1.0.1
MCP Task and Research Server
A Model Context Protocol (MCP) server for task management and research workflows, with an optional Blazor Server UI dashboard.
Installation
Option 1: Global Tool (Recommended)
Install as a global .NET tool - no cloning required:
dotnet tool install -g Mcp.TaskAndResearch
Then configure VS Code (see Configuration below).
Update:
dotnet tool update -g Mcp.TaskAndResearch
Option 2: Clone & Build
For development or customization:
git clone https://github.com/d-german/mcp-task-and-research.git
cd mcp-task-and-research
dotnet publish src/Mcp.TaskAndResearch/Mcp.TaskAndResearch.csproj -c Release -o ./publish
Configuration
Global Tool Configuration
After installing globally, add to .vscode/mcp.json:
{
"servers": {
"task-and-research": {
"type": "stdio",
"command": "mcp-task-and-research",
"env": {
"DATA_DIR": "C:/path/to/your-project/.mcp-tasks",
"TASK_MANAGER_UI": "true",
"TASK_MANAGER_UI_AUTO_OPEN": "true"
}
}
}
}
Clone & Build Configuration
{
"servers": {
"task-and-research": {
"type": "stdio",
"command": "dotnet",
"args": [
"C:/path/to/mcp-task-and-research/publish/Mcp.TaskAndResearch.dll"
],
"env": {
"DATA_DIR": "C:/path/to/your-project/.mcp-tasks",
"TASK_MANAGER_UI": "true",
"TASK_MANAGER_UI_AUTO_OPEN": "true"
}
}
}
}
β οΈ Data Storage: Critical Configuration
Understanding DATA_DIR
The DATA_DIR environment variable controls where your tasks are stored. This is the most important configuration setting when working with multiple projects.
| Configuration | Storage Location | Use Case |
|---|---|---|
DATA_DIR not set |
%LOCALAPPDATA%\mcp-task-and-research (Windows) or ~/.mcp-task-and-research (Linux/Mac) |
Single project, quick testing |
DATA_DIR set |
Your specified path | Multi-project work (RECOMMENDED) |
π¨ WARNING: Task Confusion Without Project Isolation
If you work on multiple projects WITHOUT setting DATA_DIR, you WILL encounter problems:
- Agent Sees All Tasks: The AI agent sees tasks from ALL your projects mixed together
- Wrong Task Execution: "Execute the login task" could match a task from a different project
- Broken Dependencies: Task dependencies may reference tasks from other projects
- Invalid File References: Related files point to paths in other projects
- Context Pollution: Agent's understanding gets polluted with irrelevant tasks
Example of what goes wrong:
You're working on Project-A (e-commerce site)
But your task list contains:
- "Implement login page" (from Project-B, a blog)
- "Add shopping cart" (from Project-A) β This is yours
- "Fix navigation menu" (from Project-C, a dashboard)
Agent: "I see the login task depends on the navigation menu task..."
(Wrong! These are from different projects!)
β Recommended: Project-Isolated Configuration
Always set DATA_DIR to a project-specific location:
{
"servers": {
"task-and-research": {
"type": "stdio",
"command": "mcp-task-and-research",
"env": {
"DATA_DIR": "C:/projects/my-ecommerce-app/.mcp-tasks",
"TASK_MANAGER_UI": "true"
}
}
}
}
When Global Storage IS Appropriate
The default global location is fine when:
- β You only work on one project at a time
- β You want to share tasks across all workspaces intentionally
- β You're just experimenting or testing
Best Practices
- One DATA_DIR per project - Keep tasks isolated
- Use
.mcp-tasksfolder convention - Easy to find and manage - Add to
.gitignore- For private tasks:.mcp-tasks/ - Or commit it - For shared team tasks (optional)
- Use absolute paths - Avoids working directory issues
Multi-Project Setup Example
For developers working on multiple projects, configure each project's .vscode/mcp.json:
Project A (E-commerce):
{
"env": {
"DATA_DIR": "C:\\projects\\ecommerce\\.mcp-tasks"
}
}
Project B (Blog):
{
"env": {
"DATA_DIR": "C:\\projects\\blog\\.mcp-tasks"
}
}
Project C (Dashboard):
{
"env": {
"DATA_DIR": "C:\\projects\\dashboard\\.mcp-tasks"
}
}
Now each project has completely isolated task management!
Quick Start (5 minutes)
Step 1: Install
Global Tool (easiest):
dotnet tool install -g Mcp.TaskAndResearch
Or clone & build (see Installation above).
Step 2: Configure
Add to your project's .vscode/mcp.json (create if it doesn't exist):
{
"servers": {
"task-and-research": {
"type": "stdio",
"command": "mcp-task-and-research",
"env": {
"DATA_DIR": "C:/your/project/path/.mcp-tasks",
"TASK_MANAGER_UI": "true",
"TASK_MANAGER_UI_AUTO_OPEN": "true"
}
}
}
}
β οΈ Important: Always set
DATA_DIRto your project folder. See Data Storage for why this matters.
Step 3: Start Using
- Reload VS Code or use "Developer: Reload Window" (
Ctrl+Shift+P) - The browser opens automatically to the Tasks UI (if
TASK_MANAGER_UI_AUTO_OPEN=true) - Use MCP tools via Copilot/Claude:
plan_task,execute_task,verify_task, etc.
Environment Variables
| Variable | Default | Description |
|---|---|---|
DATA_DIR |
.mcp-tasks |
Use absolute path! Folder for task data storage |
TASK_MANAGER_UI |
false |
Enable Blazor web dashboard (auto-selects available port starting at 9998) |
TASK_MANAGER_UI_AUTO_OPEN |
false |
Auto-open browser when server starts |
Features
MCP Tools
- Task Management: Create, update, split, verify, and manage tasks with dependencies
- Research Mode: In-depth exploration of programming topics
- Process Thought: Record structured reasoning steps
- Project Rules: Initialize and manage project conventions
Blazor UI Dashboard
When TASK_MANAGER_UI=true:
- Tasks View: DataGrid with sorting, filtering, search, status indicators
- Task Details: Dialog for viewing/editing tasks, dependencies, related files
- History View: Browse all task activity including archived tasks (see below)
- Settings View: Configure preferences, theme, language
History & Task Archival
When you clear the task list (via clear_all_tasks MCP tool or UI), completed tasks are automatically saved to snapshot files in the memories/ folder. The History View displays:
- Active tasks: Current tasks from
tasks.json - Archived tasks: Previously cleared tasks from all snapshot files
This means you never lose visibility into past work - cleared tasks remain viewable in History indefinitely.
UI Features
- Dark/Light Theme: Toggle with persistent preference
- Keyboard Shortcuts:
Ctrl+N(new),Ctrl+F(search),Ctrl+S(save),Ctrl+R(refresh),Esc(close),?(help) - Responsive Layout: Mobile-friendly with adaptive navigation
- Real-time Updates: Tasks sync instantly between MCP and UI
- Error Handling: User-friendly error messages with recovery
Architecture
How It Works
βββββββββββββββββββ ββββββββββββββββββββ
β MCP Client ββββββΆβ MCP Server β
β (Copilot/Claude)β β (stdio) β
βββββββββββββββββββ ββββββββββ¬ββββββββββ
β
ββββββββββΌββββββββββ
β Shared DI β
β Container β
ββββββββββ¬ββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββ
β β β
ββββββββββΌβββββββββ ββββββββΌββββββββ βββββββββΌββββββββ
β TaskStore β β MemoryStore β β RulesStore β
β (tasks) β β (context) β β (conventions)β
ββββββββββ¬βββββββββ ββββββββββββββββ βββββββββββββββββ
β
ββββββββββΌβββββββββ
β Blazor UI β (optional, auto-port)
β (MudBlazor) β
βββββββββββββββββββ
- Shared Services: UI and MCP share the same data stores via DI
- Real-time Sync: Changes via MCP tools appear instantly in UI and vice versa
- Conditional Hosting: UI only starts when
TASK_MANAGER_UI=true
Project Structure
src/Mcp.TaskAndResearch/
βββ Config/ # Configuration and path resolution
βββ Data/ # TaskStore, MemoryStore, data models
βββ Prompts/ # Prompt template builders
βββ Server/ # MCP server configuration
βββ Tools/ # MCP tool implementations
βββ UI/ # Blazor UI (when enabled)
β βββ Components/ # Razor components
β βββ Services/ # UI services
β βββ Theme/ # MudBlazor theme
βββ wwwroot/ # Static assets
Development
Prerequisites
- .NET 9 SDK
- VS Code with GitHub Copilot or Claude extension
Build from Source
# Clone the repository
git clone https://github.com/your-repo/mcp-task-and-research.git
cd mcp-task-and-research
# Build (debug)
dotnet build
# Run tests
dotnet test
# Publish release build
dotnet publish src/Mcp.TaskAndResearch/Mcp.TaskAndResearch.csproj -c Release -o ./publish
Rebuilding After Updates
When you pull updates from the repository:
cd mcp-task-and-research
git pull
dotnet publish src/Mcp.TaskAndResearch/Mcp.TaskAndResearch.csproj -c Release -o ./publish
Note: You must stop the MCP server before republishing (reload VS Code or close it), otherwise the DLL will be locked.
Run Standalone (Development)
For development without an MCP client:
# MCP server only (no UI)
dotnet run --project src/Mcp.TaskAndResearch
# With UI enabled
set TASK_MANAGER_UI=true && dotnet run --project src/Mcp.TaskAndResearch
# Then open http://localhost:9998
Using dotnet run vs Published DLL
| Method | Command | Best For |
|---|---|---|
dotnet run |
dotnet run --project path/to/csproj |
Development, debugging |
| Published DLL | dotnet path/to/Mcp.TaskAndResearch.dll |
Production, multi-project use |
For production use, always use the published DLL - it's faster to start and doesn't require recompilation.
Known Limitations
- JSON File Storage: Tasks are persisted to
DATA_DIR/tasks.json- changes from both UI and MCP tools are saved immediately - Single Project: Currently reads from one
DATA_DIR; no multi-project switching in UI - No Authentication: UI has no auth; use for local development only
- SignalR Reconnection: Brief stale data possible during connection recovery
License
MIT License - See LICENSE file for details
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.8 | 152 | 1/27/2026 |
| 1.2.1 | 116 | 1/26/2026 |
| 1.1.0 | 113 | 1/26/2026 |
| 1.0.23 | 123 | 1/21/2026 |
| 1.0.22 | 109 | 1/16/2026 |
| 1.0.21 | 117 | 1/16/2026 |
| 1.0.12 | 115 | 1/13/2026 |
| 1.0.11 | 114 | 1/13/2026 |
| 1.0.10 | 112 | 1/13/2026 |
| 1.0.9 | 115 | 1/12/2026 |
| 1.0.8 | 110 | 1/12/2026 |
| 1.0.7 | 113 | 1/12/2026 |
| 1.0.6 | 111 | 1/12/2026 |
| 1.0.5 | 109 | 1/12/2026 |
| 1.0.3 | 109 | 1/12/2026 |
| 1.0.2 | 116 | 1/12/2026 |
| 1.0.1 | 125 | 1/12/2026 |
| 1.0.0 | 113 | 1/12/2026 |
| 1.0.0-beta1 | 108 | 1/12/2026 |