Mini Task MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mini Task MCP Serverlist all my tasks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mini Task MCP Server
A simple Model Context Protocol (MCP) project built with TypeScript and Node.js.
This project demonstrates how an MCP Client communicates with an MCP Server and uses MCP tools to manage tasks through a standardized protocol.
š Features
MCP Server implementation
MCP Client implementation
STDIO transport communication
Task management system
Create new tasks
View all tasks
Update existing tasks
Complete tasks
Delete tasks
JSON file-based storage
Type-safe development using TypeScript
Related MCP server: MCP Project Manager
š ļø Tech Stack
Node.js
TypeScript
Model Context Protocol SDK
Zod Validation
JSON Storage
š MCP Architecture
User
|
|
MCP Client
|
|
Model Context Protocol
|
|
MCP Server
|
|
Task Management Tools
|
|
tasks.jsonš§ Available MCP Tools
1. add_task
Creates a new task.
Example:
{
"title": "Complete MCP project",
"description": "Finish MCP server implementation"
}2. list_tasks
Returns all available tasks.
Example response:
[
{
"id": 1,
"title": "Learn MCP",
"status": "pending"
}
]3. update_task
Updates an existing task.
Example:
{
"id": 1,
"title": "Updated task title"
}4. complete_task
Marks a task as completed.
Example:
{
"id": 1
}5. delete_task
Deletes a task using its ID.
Example:
{
"id": 1
}š Project Structure
mini-task-mcp
ā
āāā src
ā āāā server.ts # MCP Server implementation
ā āāā client.ts # MCP Client implementation
ā
āāā tasks.json # Task storage
ā
āāā package.json
āāā package-lock.json
āāā tsconfig.json
āāā README.md
āāā .gitignoreāļø Installation
Clone the repository:
git clone https://github.com/yourusername/mini-task-mcp.gitNavigate into project:
cd mini-task-mcpInstall dependencies:
npm installā¶ļø Running the Project
Build TypeScript
npm run buildStart MCP Server
npm startRun MCP Client
npm run clientš How MCP Works in This Project
The MCP Client sends a request.
The MCP Server receives the request.
The server identifies the required tool.
The selected tool performs the task operation.
The result is returned back to the client.
Example:
Client
|
| Request: Add Task
ā
MCP Server
|
| Executes add_task tool
ā
tasks.json updated
|
ā
Response returned to ClientšÆ Project Purpose
The purpose of this project is to understand the fundamentals of Model Context Protocol (MCP) and how AI applications can securely interact with external tools and data sources.
This mini project demonstrates the foundation required for building AI assistants that can perform real-world operations using connected services.
š® Future Improvements
Add SQLite database support
Add authentication system
Add REST API support
Add AI-powered task assistant
Connect with LLM-based MCP clients
Add cloud deployment support
šØāš» Author
Mohd Samir Shaikh
Mini MCP Task Management Project
Available Tools
6 toolsadd_taskC
Add a new task to the local task manager.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description is silent on side effects, validation, or dependencies. With no annotations, the agent gets no insight into behavior beyond 'adds a task'. Mutation tools require more disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise and front-loaded, but it sacrifices necessary detail. It earns its place by being clear, but the description would benefit from additional context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description fails to cover what happens on success, error conditions, or how tasks relate to each other. The 'local task manager' concept is undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no information about the 'title' or 'description' parameters. Their meaning is left entirely to inference from names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and the resource ('task') with scope ('local task manager'). It distinguishes from sibling tools (complete, delete, get, list, update) by using a unique verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites or scenarios that would suggest using add_task over other similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_taskC
Mark an existing task as completed.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the action but omits details like whether completion is irreversible, if it triggers any side effects, or if it updates a status field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. While it could include more detail, it is appropriately concise for a simple action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate. However, it lacks context on when to use it and any behavioral implications, making it incomplete for optimal agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate by explaining 'taskId'. It provides no additional meaning, leaving the agent to infer from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Mark' and the resource 'existing task' with the result 'as completed'. It is unambiguous but does not explicitly distinguish from 'update_task', which could also modify completion status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus 'update_task' or other siblings. There is no mention of prerequisites (e.g., task must exist) or any conditions for using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskB
Delete an existing task using its task ID.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should disclose behavioral traits. It only states deletion, but does not mention irreversibility, permissions, or error handling for non-existent tasks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no extraneous information; highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool but lacks mention of success/failure behavior; no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and description adds no detail about taskId (e.g., format, source, constraints beyond integer).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Delete' and resource 'existing task', uniquely distinguishing it from sibling tools like add_task, complete_task, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use delete over alternatives or any prerequisites; no mention of when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskB
Get the complete details of one task using its task ID.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only states it retrieves details, but does not disclose side effects, permissions, or return behavior (e.g., does it return all fields? Are there rate limits?). Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no extraneous words. Front-loaded with key information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter and no output schema, the description is adequate but incomplete. It doesn't explain what 'complete details' includes, error conditions, or any other context beyond parameter usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add value. It clarifies that 'taskId' is the identifier, which is useful but basic. Schema already defines type and constraints, so description adds only moderate additional insight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get', the resource 'task', and the specific detail 'complete details using its task ID'. It distinguishes from sibling tools like 'list_tasks' (list) and 'delete_task' (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'list_tasks' or 'update_task'. It only mentions basic usage with task ID but no context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksC
List all tasks or filter them by pending or completed status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It only states basic listing/filtering behavior without disclosing ordering, pagination, or that results are always read-only. Lacks detail on behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Could be more informative while remaining concise, but structure is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should hint at return format (e.g., list of task objects with fields). It does not, leaving incomplete context for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter description in the description field). The 'status' parameter with enum values is not explained. Description adds no semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'list all tasks' with optional filtering, distinguishing it from sibling tools (add, complete, delete, get, update). Action and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. Does not specify context or exclusions for filtering or when to prefer get_task over list_tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskA
Update the title or description of an existing task using its task ID.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| taskId | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only states the basic mutation. It omits details like idempotency, error handling (e.g., if task not found), permissions, or whether updates are partial/full.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no unnecessary words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple CRUD operation but lacks behavioral completeness (e.g., partial update behavior, error conditions) expected given no output schema or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description should add meaning. It mentions 'title or description' but does not elaborate on their roles, constraints, or provide examples beyond the schema's implicit naming.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates 'title or description of an existing task using its task ID,' which is specific and distinguishes it from siblings like add_task (create), delete_task (remove), or list_tasks (read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when modifying an existing task's title/description) and provides the required task ID context, but does not explicitly compare to alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.0- First observed
add_task - First observed
complete_task - First observed
delete_task - First observed
get_task - First observed
list_tasks - First observed
update_task
TDQS
Scored across 6 tools
Each tool has a unique action (add, complete, delete, get, list, update) with no overlap, making selection unambiguous.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_task, complete_task), adhering perfectly to the convention.
With 6 tools covering core task operations (CRUD + status), the count is well-scoped for a local task manager.
Covers the full lifecycle except for a 'reopen' or 'set pending' operation; update_task only modifies title/description, not status, which is a minor gap.
Maintenance
Related MCP Connectors
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
Create, list, and complete todo items through MCP.
- DazbenchOAuthapp.dazbench
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
Read and write Mission Control state via MCP ā projects, tasks, subtasks, templates, status updates.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables task management through natural language with full CRUD operations including add, list, update, complete, and delete tasks with JSON persistence.-
- FlicenseAqualityDmaintenanceEnables task management (create, list, update tasks with priority and status) using SQLite storage via MCP tools.3-
- AlicenseNot gradedqualityBmaintenanceEnables agents to manage personal task lists through the MCP protocol, supporting task creation, editing, completion, deletion, grouping, reordering, and JSON import/export.1AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables managing tasks in a structured TODO.md file through MCP tools for listing, adding, updating, setting status, logging notes, searching, and removing tasks while preserving hand-authored formatting.5 npmMIT