Skip to main content
Glama
leonj1

Project Tracking MCP Server

by leonj1

Project Tracking MCP Server

A lightweight Model Context Protocol (MCP) server built with FastMCP that provides project and task management capabilities through a single SQLite database file.

Features

  • Project Management

    • Create, list, get, and delete projects

    • Each project has a name, description, and timestamps

  • Task Management

    • Add tasks to projects with descriptions and categories

    • Track task status: backlog, in_progress, review, complete

    • Update task status and delete tasks

    • Categories for organizing tasks (e.g., 'testing', 'ux', 'transcription')

  • Single-File Database

    • All data stored in a single SQLite file (projects.db)

    • Automatic database initialization

    • Persistent storage with full CRUD operations

Installation

  1. Clone the repository:

git clone <repository-url>
cd project-tracking-mcp
  1. Install dependencies using one of these methods:

Using pip:

pip install -r requirements.txt

Using uv (recommended for FastMCP):

uv pip install fastmcp pydantic

Or install directly:

pip install fastmcp pydantic

Usage

Running the Server

Start the MCP server:

python server.py

Configuring with Claude Desktop

Add this configuration to your Claude Desktop claude_desktop_config.json:

{
  "mcpServers": {
    "project-tracker": {
      "command": "python",
      "args": ["/path/to/project-tracking-mcp/server.py"]
    }
  }
}

Or use FastMCP's automatic installation:

fastmcp install claude-desktop server.py --server-name "Project Tracker"

Configuring with Claude Code

To use this MCP server with Claude Code (Anthropic's official CLI):

  1. Install Claude Code (if you haven't already):

    # Install via pip
    pip install claude-code
    
    # Or using uv
    uv tool install claude-code
  2. Add MCP server to Claude Code configuration:

    Create or edit your Claude Code MCP configuration file:

    # Create the config directory if it doesn't exist
    mkdir -p ~/.claude
    
    # Edit the MCP config file
    nano ~/.claude/mcp_servers.json
  3. Add this server configuration:

    {
      "project-tracker": {
        "command": "python",
        "args": ["/absolute/path/to/project-tracking-mcp/server.py", "--mcp-only"],
        "env": {}
      }
    }
  4. Update the path in the configuration to point to your actual installation directory:

    {
      "project-tracker": {
        "command": "python",
        "args": ["/home/yourusername/project-tracking-mcp/server.py", "--mcp-only"],
        "env": {}
      }
    }
  5. Verify the installation:

    # Test that Claude Code can connect to the server
    claude-code --list-tools

    You should see the project tracking tools listed:

    • list_projects

    • create_project

    • get_project

    • delete_project

    • create_task

    • update_task_status

    • delete_task

    • get_project_stats

  6. Start using with Claude Code:

    # Start Claude Code session
    claude-code
    
    # Now you can use project tracking commands like:
    # "Create a new project called 'My Web App'"
    # "Add a task to implement user authentication"
    # "Show me all my projects and their tasks"

Note: The --mcp-only flag ensures the server runs in MCP mode without starting the HTTP web interface, which is optimal for Claude Code integration.

Available MCP Tools

Project Management

  • list_projects(): List all projects with summary information

  • create_project(name, description?): Create a new project

  • get_project(project_id): Get detailed project information with all tasks

  • delete_project(project_id): Delete a project and all its tasks

Task Management

  • create_task(project_id, description, category): Add a task to a project

  • update_task_status(task_id, status): Update task status

  • delete_task(task_id): Delete a task

Statistics

  • get_project_stats(): Get overall statistics about projects and tasks

Example Usage

Create a Project

create_project(
    name="Website Redesign",
    description="Complete overhaul of company website"
)

Add Tasks

create_task(
    project_id="<project-id>",
    description="Design new homepage mockup",
    category="ux"
)

Update Task Status

update_task_status(
    task_id="<task-id>",
    status="in_progress"
)

Get Project with Tasks

get_project(project_id="<project-id>")
# Returns project details with all tasks and statistics

Data Models

Project

  • id: Unique identifier (UUID)

  • name: Project name

  • description: Project description

  • created_at: Creation timestamp

  • updated_at: Last update timestamp

  • tasks: List of associated tasks

Task

  • id: Unique identifier (UUID)

  • description: Task description

  • category: Task category/label

  • status: Current status (backlog/in_progress/review/complete)

  • created_at: Creation timestamp

  • updated_at: Last update timestamp

Database

The server uses SQLite with two tables:

  • projects: Stores project information

  • tasks: Stores task information with foreign key to projects

The database file (projects.db) is created automatically on first run.

Requirements

  • Python 3.10+

  • FastMCP

  • Pydantic 2.0+

  • SQLite (built-in with Python)

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/leonj1/project-tracking-mcp'

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