Skip to main content
Glama
akbarshaik2243

Local Task Manager MCP Server

Local Task Manager MCP Server

A beginner-friendly Model Context Protocol server built with Python and FastMCP.

This project demonstrates how an MCP server can expose structured tools that allow an AI application to create, read, update, and delete tasks stored in a local JSON file.

Features

  • Add a task

  • List all tasks

  • Filter completed or incomplete tasks

  • Mark a task as completed

  • Delete a task

  • Persist task data in tasks.json

  • Return structured MCP responses

  • Handle invalid task IDs and input errors

Related MCP server: task-mcp-node

MCP Tools

add_task

Creates a new task.

Inputs:

  • title: Required task title

  • description: Optional task description

list_tasks

Lists saved tasks.

Optional input:

  • completed: Filter by completion status

complete_task

Marks a task as completed.

Input:

  • task_id: ID of the task

delete_task

Deletes a task.

Input:

  • task_id: ID of the task

Project Structure

task-manager-mcp/
├── main.py
├── tasks.json
├── pyproject.toml
├── uv.lock
└── README.md

Requirements

  • Python 3.10 or later

  • uv

  • Node.js and npm for MCP Inspector

Install Dependencies

uv sync

Run with MCP Inspector

uv run mcp dev main.py

The Inspector should display these tools:

add_task
list_tasks
complete_task
delete_task

Example Task

{
  "id": 1,
  "title": "Prepare Day 5 MCP article",
  "description": "Connect the Task Manager MCP Server to Trello",
  "completed": false
}

Example Flow

User request
    ↓
MCP client
    ↓
Local Task Manager MCP Server
    ↓
Python tool
    ↓
tasks.json
    ↓
Structured response

What This Project Teaches

  • Creating an MCP server with FastMCP

  • Exposing Python functions using @mcp.tool()

  • Generating tool schemas from type hints

  • Returning structured data

  • Validating tool inputs

  • Handling expected errors

  • Persisting data in a local JSON file

  • Testing MCP tools with MCP Inspector

Roadmap

The next version will connect the same task-management capabilities to Trello:

add_task → Create a Trello card
list_tasks → List Trello cards
complete_task → Move a card to Done
delete_task → Archive a Trello card

Author

Akbar Shaik

Machine Learning Engineer teaching MCP servers and AI agents from scratch.

Available Tools

3 tools
complete_taskB

Mark a task as completed and return the updated task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
titleYes
completedYes
descriptionYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It states the action and return value, but omits details such as idempotency, side effects on related data, permission requirements, or behavior when the task is already completed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose. It avoids unnecessary words, though some important information is missing, which prevents a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (1 parameter, output schema exists), the description is insufficient. It lacks preconditions, error handling, behavioral details, and clarity on what constitutes completion, leaving the agent with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter (task_id) with 0% description coverage. The description adds no additional meaning beyond the parameter name, failing to compensate for the lack of schema descriptions. The agent receives no guidance on the parameter's format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (mark as completed) and the resource (task), and returns the updated task. It distinguishes from sibling tools: list_tasks lists tasks and delete_task deletes, while this tool completes a specific task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to mark a task as completed, but it does not specify when not to use it or provide alternatives. The context is clear but lacks explicit guidance on preconditions or exclusion cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_taskA

Delete a task by ID and return the deleted task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
titleYes
completedYes
descriptionYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It states that the tool returns the deleted task, which adds some transparency, but it does not mention side effects (e.g., irreversibility), authorization needs, or the permanence of deletion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core action and return value, with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with one parameter and no annotations, the description covers purpose and return value. However, it lacks comparison to sibling tools (e.g., when to delete vs. complete) and does not mention any confirmation or undo behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions 'by ID', which contextualizes the task_id parameter beyond the schema title, but does not explain how to obtain the ID or its format. With 0% schema description coverage, the description provides minimal added meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'delete' and the resource 'task', and specifies that it returns the deleted task. This distinguishes it from siblings like list_tasks (does not delete) and complete_task (does not delete).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 alternatives such as complete_task. The description does not mention prerequisites or conditions for deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksA

List tasks, optionally filtered by completion status.

ParametersJSON Schema
NameRequiredDescriptionDefault
completedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It does not mention that this is a read-only operation, nor any details about pagination, ordering, or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, clearly conveying the tool's purpose and optional filtering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple schema (one optional parameter) and existence of an output schema, the description adequately explains the input but could mention the return format (array of tasks) for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds meaning to the only parameter 'completed' by stating it filters by completion status. This is sufficient for a single optional parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'tasks', and specifies optional filtering by completion status. This distinguishes it from sibling tools complete_task and delete_task which are mutations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for viewing tasks, but does not explicitly state when to use vs. alternatives, nor provide exclusions or prerequisites.

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. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedcomplete_task
    • First observeddelete_task
    • First observedlist_tasks

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a distinct purpose: listing tasks, marking as completed, and deleting. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case: list_tasks, complete_task, delete_task.

Tool Count4/5

Three tools is a reasonable minimal set for a simple task manager, though it could be slightly expanded.

Completeness2/5

Missing essential operations like create_task and update_task, leaving a significant gap that prevents full task lifecycle management.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    A lightweight task management MCP server that enables CRUD operations on tasks stored in a single JSON file, including listing, creating, updating progress, and setting priorities.
    221
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that integrates with myTinyTodo to list, create, edit, and complete tasks via its JSON HTTP API.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/akbarshaik2243/task-manager-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server