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.
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:
- Open the Tools section.
- Select
add_daily_work_log. - Enter the work log information.
- Click Execute Tool.
- Select
list_daily_work_logs. - Execute the tool to verify that the record was stored.
- Use
update_work_statusto mark a work log as Done. - Use
delete_daily_work_logwhen a record needs to be removed. - Use
get_work_summaryto 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 Dostatus - [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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.