Mcp.TaskAndResearch
1.0.3
See the version list below for details.
dotnet tool install --global Mcp.TaskAndResearch --version 1.0.3
dotnet new tool-manifest
dotnet tool install --local Mcp.TaskAndResearch --version 1.0.3
#tool dotnet:?package=Mcp.TaskAndResearch&version=1.0.3
nuke :add-package Mcp.TaskAndResearch --version 1.0.3
MCP Task and Research Server
π¦ A .NET port of mcp-shrimp-task-manager β Intelligent task management for AI-powered development.
A powerful Model Context Protocol (MCP) server built with .NET 9.0 that provides advanced task management and research capabilities for AI assistants. This server enables structured task planning, dependency management, and guided research workflows β with an optional Blazor Server UI dashboard.
π Origin & Motivation
This project is a complete port of the original mcp-shrimp-task-manager from Node.js/TypeScript to C#/.NET 9.0.
Why This Port Exists
The original Shrimp Task Manager is an excellent concept, but:
- β οΈ Maintenance Concerns: The original repository may have periods of inactivity
- π Security: Node.js dependencies can accumulate vulnerabilities over time
- π’ Enterprise Needs: Many organizations prefer .NET for its enterprise support, type safety, and performance
- π§ Active Development: This .NET version is actively maintained and updated
Comparison
| Aspect | Original (Node.js) | This Port (.NET) |
|---|---|---|
| Runtime | Node.js 18+ | .NET 9.0 |
| Installation | npm install + clone |
dotnet tool install -g β¨ |
| Type Safety | TypeScript | C# (stronger) |
| Dependencies | npm ecosystem | NuGet (curated) |
| Performance | Good | Excellent (compiled, AOT-ready) |
| UI | React Task Viewer | Blazor Server Dashboard |
π‘ What is This?
MCP Task and Research Server transforms how AI agents approach software development. Instead of losing context or repeating work, it provides:
- π§ Persistent Memory: Tasks and progress persist across sessions
- π Structured Workflows: Guided processes for planning, execution, and verification
- π Smart Decomposition: Automatically breaks complex tasks into manageable subtasks
- π― Context Preservation: Never lose your place, even with token limits
- π Dependency Tracking: Automatic management of task relationships
β¨ Core Features
π Task Management
| Feature | Description |
|---|---|
| Intelligent Planning | Deep analysis of requirements before implementation |
| Task Decomposition | Break down large projects into atomic, testable units |
| Dependency Resolution | Automatic resolution by task name or ID |
| Progress Monitoring | Real-time status tracking and updates |
| Verification & Scoring | Score task completion against criteria |
| Task History | Automatic snapshots and backups |
π¬ Research Mode
- Guided Research: Systematic exploration of technologies and solutions
- State Management: Track research progress across sessions
- Next Steps Planning: Define and follow research directions
π Project Rules
- Project Standards: Define and maintain coding standards across your project
- Consistency: Ensure AI assistants follow your conventions
π€ Thinking Tools
- Process Thought: Structured thinking with branching and revision support
- Chain-of-Thought: Encourages reflection and style consistency
πΎ Memory & Data Management
- Task Snapshots: Automatic preservation of task state history
- Memory Store: Dedicated memory management for context storage
- Automatic Backups: Created during clear operations to prevent data loss
- Per-Project Isolation: Each workspace maintains separate task data
π₯οΈ 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
- Settings View: Configure preferences, theme, language
- Dark/Light Theme: Toggle with persistent preference
- Keyboard Shortcuts:
Ctrl+N,Ctrl+F,Ctrl+S,Ctrl+R,Esc,? - Real-time Updates: Tasks sync instantly between MCP and UI
π― Common Use Cases
<details> <summary><b>Feature Development</b></summary>
You: "plan task: add user authentication with JWT"
# Agent analyzes codebase, creates subtasks with dependencies
You: "execute task"
# Implements authentication step by step, tracking progress
</details>
<details> <summary><b>Bug Fixing</b></summary>
You: "plan task: fix memory leak in data processing"
# Agent researches issue, creates fix plan with verification criteria
You: "execute all pending tasks"
# Executes all fix tasks, verifying each one
</details>
<details> <summary><b>Research & Learning</b></summary>
You: "research: compare Blazor vs React for this project"
# Systematic analysis with pros/cons, saved to memory
You: "plan task: migrate component to chosen framework"
# Creates migration plan based on research findings
</details>
<details> <summary><b>Project Setup</b></summary>
You: "init project rules"
# Establishes coding standards and conventions
You: "plan task: set up CI/CD pipeline"
# Creates structured plan following your project rules
</details>
π οΈ Available MCP Tools
| Tool | Description |
|---|---|
plan_task |
Analyze requirements and create a structured task plan |
split_tasks |
Break down complex tasks into smaller subtasks |
list_tasks |
List all tasks with optional status filter |
execute_task |
Execute a specific task by ID |
verify_task |
Verify task completion with scoring |
update_task |
Update task details, dependencies, or files |
delete_task |
Remove a task by ID |
clear_all_tasks |
Archive and clear all tasks |
query_task |
Search tasks by keyword or ID |
get_task_detail |
Get full details for a specific task |
research_mode |
Enter guided research mode for a topic |
process_thought |
Record structured thinking steps |
init_project_rules |
Initialize project coding standards |
π Installation
Option 1: Global Tool (Recommended)
Install as a global .NET tool - no cloning required:
dotnet tool install -g Mcp.TaskAndResearch
After installation, run mcp-task-and-research --help to see setup instructions:
mcp-task-and-research --help
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
Option 1: Global Tool (Recommended)
Install as a global .NET tool - no cloning required:
dotnet tool install -g Mcp.TaskAndResearch
After installation, run mcp-task-and-research --help to see setup instructions:
mcp-task-and-research --help
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 |
π 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 memory/ 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.
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.
π Credits
- Original Concept: mcp-shrimp-task-manager by cjo4m06
- .NET Port: d-german
<p align="center"> <a href="https://github.com/d-german/mcp-task-and-research">GitHub</a> β’ <a href="https://www.nuget.org/packages/Mcp.TaskAndResearch">NuGet</a> β’ <a href="https://github.com/d-german/mcp-task-and-research/issues">Issues</a> </p>
| 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 | 149 | 1/27/2026 |
| 1.2.1 | 116 | 1/26/2026 |
| 1.1.0 | 113 | 1/26/2026 |
| 1.0.23 | 122 | 1/21/2026 |
| 1.0.22 | 109 | 1/16/2026 |
| 1.0.21 | 116 | 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 | 114 | 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 | 108 | 1/12/2026 |
| 1.0.3 | 109 | 1/12/2026 |
| 1.0.2 | 116 | 1/12/2026 |
| 1.0.1 | 124 | 1/12/2026 |
| 1.0.0 | 113 | 1/12/2026 |
| 1.0.0-beta1 | 108 | 1/12/2026 |