Intern Task Tracker MCP Server

Intern Task Tracker MCP Server

Enables managing daily work logs with tools for adding, listing, updating status, deleting, and summarizing tasks, using SQLite for persistent storage.

Category
Visit Server

README

Intern Task Tracker - MCP Server

A Python-based Model Context Protocol (MCP) Server developed for tracking daily internship work.

The project uses FastMCP to expose task-management tools and SQLite to permanently store Daily Work Log information.


Project Overview

The Intern Task Tracker allows internship work details to be managed through MCP tools.

The current system supports:

  • Adding Daily Work Logs
  • Listing Daily Work Logs
  • Updating a work log status to Done
  • Deleting Daily Work Logs
  • Viewing an overall work summary
  • Storing all work log information in SQLite
  • Testing MCP tools through MCP Inspector

Technologies Used

  • Python
  • Model Context Protocol (MCP)
  • FastMCP
  • SQLite
  • MCP Inspector
  • VS Code
  • Node.js / NPX

Project Structure

MCP_Server/
│
├── server.py
├── database.py
├── intern_tracker.db
├── requirements.txt
├── README.md
│
├── venv/
│
└── __pycache__/

server.py

Contains the MCP server and all MCP tools.

database.py

Handles:

  • SQLite connection
  • Database initialization
  • Table creation
  • Database reset functionality

intern_tracker.db

SQLite database used to permanently store Daily Work Log records.

requirements.txt

Contains the Python dependencies required by the project.


Daily Work Log Structure

The daily_work_log table stores the following information:

Field Description
id Unique ID of the work log
work_date Date of work
day Day automatically calculated from date
task_description Work performed / task description
deliverables Deliverables or output
blockers Blockers or dependencies
hours_spent Total working hours
status Current task status
notes Additional comments
created_at Record creation timestamp
updated_at Last update timestamp

When a new Daily Work Log is created, its status is automatically:

To Do

The update_work_status MCP tool changes the status to:

Done

MCP Tools

The server currently provides five MCP tools.

1. add_daily_work_log

Adds a new Daily Work Log to the SQLite database.

Inputs include:

  • Work Date
  • Task Description
  • Deliverables
  • Blockers
  • Hours Spent
  • Notes

The day is automatically calculated from the entered date.

The default status is automatically set to To Do.


2. list_daily_work_logs

Retrieves the Daily Work Logs stored in the database.

Logs can optionally be filtered using their status.

Examples:

To Do
Done

3. update_work_status

Marks an existing Daily Work Log as:

Done

The Log ID is required to identify the record.


4. delete_daily_work_log

Deletes a Daily Work Log using its Log ID.


5. get_work_summary

Returns a summary containing:

  • Total Work Logs
  • Completed Logs
  • To Do Logs
  • Total Hours Spent

Setup Instructions

1. Open the Project

Open the project folder in VS Code:

cd D:\MCP_Server

2. Activate Virtual Environment

Run:

.\venv\Scripts\Activate.ps1

The terminal should show:

(venv) PS D:\MCP_Server>

PowerShell Execution Policy Issue

If PowerShell prevents the virtual environment from activating, run:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

Then:

.\venv\Scripts\Activate.ps1

Running the Project

The following commands are used to verify and run the MCP server.

Step 1 - Check server.py for syntax errors

Run:

python -m py_compile server.py

If no error appears, the Python file compiled successfully.


Step 2 - Verify the MCP Server

Run:

python -c "from server import mcp; print('Server loaded successfully')"

Expected output:

Server loaded successfully

Step 3 - Initialize the SQLite Database

Run:

python database.py

Expected output:

==================================================
Intern Tracker Database Initialized Successfully
==================================================

This creates the database/table if it does not already exist.


Step 4 - Start MCP Inspector

Run:

npx @modelcontextprotocol/inspector python server.py

Expected output will be similar to:

Starting MCP inspector...

MCP Inspector Web is up and running at:
http://localhost:6274?MCP_INSPECTOR_API_TOKEN=...

Sandbox (MCP Apps):
http://localhost:xxxxx/sandbox

Auth token: ...

Opening browser...

The port numbers and authentication token can change every time MCP Inspector starts.

The browser should open MCP Inspector automatically.


Quick Run Commands

For normal development, use:

cd D:\MCP_Server

.\venv\Scripts\Activate.ps1

python -m py_compile server.py

python database.py

npx @modelcontextprotocol/inspector python server.py

For additional server verification, run:

python -c "from server import mcp; print('Server loaded successfully')"

Using MCP Inspector

After MCP Inspector opens:

  1. Open the Tools section.
  2. Select add_daily_work_log.
  3. Enter the work log information.
  4. Click Execute Tool.
  5. Select list_daily_work_logs.
  6. Execute the tool to verify that the record was stored.
  7. Use update_work_status to mark a work log as Done.
  8. Use delete_daily_work_log when a record needs to be removed.
  9. Use get_work_summary to view the overall internship work summary.

Data Flow

    MCP Inspector
          |
          v
      MCP Tool
          |
          v
      server.py
          |
          v
     database.py
          |
          v
        SQLite
          |
          v
    intern_tracker.db
          |
          v
    daily_work_log

For example:

User enters Daily Work Log
          |
          v
   add_daily_work_log
          |
          v
    INSERT SQL Query
          |
          v
   intern_tracker.db
          |
          v
  daily_work_log table

Viewing Stored Data

The intern_tracker.db file is a binary SQLite database file, so it should not be opened as a normal text file.

Use a SQLite viewer/editor extension in VS Code.

Open:

intern_tracker.db

Then select:

TABLES
   └── daily_work_log

The stored records will be displayed in table format.

You can also verify the data from the terminal:

python -c "import sqlite3; con=sqlite3.connect('intern_tracker.db'); rows=con.execute('SELECT * FROM daily_work_log').fetchall(); print(rows); con.close()"

Current Project Status

The following functionality has been completed:

  • [x] Python MCP server setup
  • [x] FastMCP integration
  • [x] SQLite database setup
  • [x] Daily Work Log table
  • [x] Add Daily Work Log
  • [x] List Daily Work Logs
  • [x] Update Work Status
  • [x] Delete Daily Work Log
  • [x] Work Summary
  • [x] Automatic day calculation
  • [x] Default To Do status
  • [x] MCP Inspector integration
  • [x] SQLite data persistence
  • [x] End-to-end MCP tool testing

Future Development

Future versions of the project can include:

  • MCP Resources
  • MCP Prompts
  • Additional validation
  • Duplicate work-date handling
  • Improved reporting and summaries

Developer

Soham Thoke

AI Engineering Intern


Project Purpose

This project was developed to understand and implement a Python-based MCP server while building a practical internship Daily Work Log tracking system using MCP tools and SQLite.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured