timesheet-mcp
Click on "Install 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: mcp-cronos
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityCmaintenanceAn 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
- AlicenseAqualityBmaintenanceMCP server for structured daily work diary management, enabling entries, standup summaries, weekly reports, full-text search, and automatic git commits.14MIT
- Flicense-qualityDmaintenanceMCP 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
Related MCP Connectors
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
MCP server for Meitre restaurant reservations.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/srtipo/timesheet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server