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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。