timesheet-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@timesheet-mcpCan you log my hours for today and export the monthly Excel timesheet?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Timesheet MCP (PRIS)
Servidor MCP (Model Context Protocol) en Python que mantiene el control
horario del profesional en un archivo JSON editable entre sesiones y, al
pedirlo, renderiza un .xlsx respetando la plantilla
Timesheet Modelo Mayo 2025 PRIS.xlsx (logo, merges, formulas).
Stack
Python 3.11+
openpyxl3.1+mcp[cli]1.0+pydantic2.6+
Related MCP server: timesheet-data
Estructura
timesheet/
models.py # pydantic: Professional, Supervisor, DayItem, Day, State
state.py # load_state, save_state, mutadores puros
dates.py # working_days(year, month) y agregaciones
renderer.py # render(state, template, out) + plan B de imagen
template/ # copia inmutable de la plantilla PRIS
data/ # state.json (se crea al primer arranque)
exports/ # salida de export_to_excel
tests/ # smoke test (10 casos del spec + extras de borde)
server.py # entrypoint MCP stdio, 11 toolsSetup (Windows)
# 1. Instalar Python 3.11+ desde python.org (marca "Add to PATH")
# 2. Desde la raiz del proyecto:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .
# 3. Verificar que la plantilla este copiada en template/
# 4. Smoke test:
python tests/smoke_test.pyRegistro en cliente MCP
OpenCode (recomendado — ya configurado en este proyecto)
El MCP timesheet ya esta registrado globalmente en
%USERPROFILE%\.config\opencode\opencode.jsonc:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"timesheet": {
"type": "local",
"command": [
"C:\\proyectos\\timesheet\\.venv\\Scripts\\python.exe",
"C:\\proyectos\\timesheet\\server.py"
],
"cwd": "C:\\proyectos\\timesheet",
"enabled": true,
"timeout": 15000
}
}
}Disponible en cualquier sesion de opencode (en cualquier directorio de trabajo) con solo mencionarlo en el prompt, p.ej.:
use timesheet para cargar las horas de hoy y exportar el excel del mesVerificacion:
opencode mcp list
# -> ✓ timesheet connectedClaude Desktop
%APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"timesheet": {
"command": "C:\\proyectos\\timesheet\\.venv\\Scripts\\python.exe",
"args": ["C:\\proyectos\\timesheet\\server.py"]
}
}
}Tools (11)
# | Tool | Proposito |
1 |
| Estado completo + bloque |
2 |
| Editar nombre, especialidad, tarifa, mes/anio |
3 |
| Editar nombre y fecha del supervisor |
4 |
| Editar |
5 |
| Upsert de un item por descripcion (auto-default 8h) |
6 |
| Reemplazar la lista completa del dia |
7 |
| Borrar el primer item que matchee |
8 |
| Borrar el dia completo (items + entry/exit) |
9 |
| Mover un item por |
10 |
| Totales calculados (sin escribir) |
11 |
| Renderizar el .xlsx segun la plantilla |
Notas
Recalculo de formulas al abrir: el servidor setea
wb.calculation.fullCalcOnLoad = Truepara que Excel/LibreOffice recalcule automaticamente. Si no se ve el total actualizado al abrir el archivo, presioneF9oCtrl+Alt+F9.Paginas multiples: si el mes tiene mas de 22 laborables (caso conocido: 2027-07 y 2027-12), el archivo exportado puede ocupar 2 paginas impresas. La impresion usa
fitToPage=truedel template.Imagen del logo: openpyxl generalmente la preserva. Como salvaguarda el renderer aplica un Plan B con
zipfiletras elsave, copiandoxl/media/yxl/drawings/_rels/*.relsdesde la plantilla original si hace falta. Si la imagen sigue sin aparecer, verifique la consola para elwarningde respuesta.Encoding: el JSON se persiste en UTF-8 con
ensure_ascii=False, preservando acentos y tildes (ej: "Raúl").Persistencia atomica: cada mutacion escribe a
state.json.tmpy luego haceos.replace. No haystate.jsonhuerfano a medio escribir.
This server cannot be deployed
Maintenance
Related MCP Connectors
- mcp-serverOAuthio.klokin
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
MCP server for lacita - appointment management software
MCP server providing attendance data queries via the CloudTime API.
MCP server for Product Management
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that wraps the TimePRO API, enabling AI assistants to automatically create, view, and manage timesheets for authenticated users. It provides tools for searching clients and projects, retrieving configuration defaults, and performing full CRUD operations on timesheet entries.10-
- FlicenseNot gradedqualityDmaintenanceMCP server for querying work checkpoints and storing finalized timesheet reports in SQLite.-
- FlicenseAqualityDmaintenanceMCP server providing CRUD operations for timesheet management via REST API endpoints, enabling creation, reading, updating, and deletion of timesheet entries along with project management.9-
- AlicenseBqualityCmaintenanceMCP server for Clockify time tracking, enabling CRUD operations on workspaces, projects, tasks, clients, tags, users, and time entries.36MIT