Skip to main content
Glama
erkkiat
by erkkiat

timesheet-mcp

A local, MCP-only timesheet application. There is no UI of its own — Claude (or any other MCP client) is the interface. Users ask their AI assistant to log hours, correct entries, run monthly reports, and pull the numbers needed to invoice customers. The server's job is correct data storage, filtering/aggregation, and Finnish-holiday-aware working-time math — not natural-language parsing (the AI client is responsible for turning "log 3h on Tempo yesterday" into a structured tool call).

Tech stack

  • Python 3.11+

  • mcp (official Python MCP SDK, FastMCP-style server)

  • holidays for Finnish public holidays

  • SQLite (stdlib) for storage

  • uv for dependency/venv management

  • pytest for tests

Related MCP server: TimePRO MCP Server

Setup

uv sync

Testing

Verify the project scaffolds correctly (no tests yet, but confirms the package is importable and dependencies resolve):

pytest --collect-only

Run all tests against a temp SQLite database:

pytest

Run specific test modules:

pytest tests/test_models.py

Docker

Build the image:

docker build -t timesheet-mcp .

Run the MCP server (stdio transport — requires -i for stdin):

docker run -i --rm \
  -v ./data:/app/data \
  -v ./logs:/app/logs \
  timesheet-mcp

Mount ./data and ./logs from the host so the SQLite database and log file persist across container restarts and rebuilds.

Environment variables can be passed with -e (defaults are sane): TIMESHEET_DB_PATH, TIMESHEET_LOG_LEVEL, TIMESHEET_LOG_STDERR.

Install for Claude Desktop (single user, local)

Prerequisites: Docker and git.

git clone https://github.com/erkkiat/timesheet-mcp.git
cd timesheet-mcp
docker build -t timesheet-mcp:latest .
mkdir -p data logs

Add a timesheet entry under the top-level mcpServers key in your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS) — merge it in alongside anything else already in that file, and replace /absolute/path/to/timesheet-mcp with wherever you cloned this repo:

{
  "mcpServers": {
    "timesheet": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "--name", "timesheet-mcp",
        "-v", "/absolute/path/to/timesheet-mcp/data:/app/data",
        "-v", "/absolute/path/to/timesheet-mcp/logs:/app/logs",
        "timesheet-mcp:latest"
      ]
    }
  }
}

Restart Claude Desktop. The timesheet server should now be available, backed by a SQLite database at data/timesheet.db on your own machine — nothing leaves your computer. --name timesheet-mcp makes Docker refuse a second launch while one's already running instead of silently starting a duplicate.

Project status

1.0 — the full MCP tool surface (customers, projects, people, time entries, Finnish-holiday-aware monthly reports) is implemented, tested, Dockerized, and verified end-to-end including under concurrent load. See PLAN.md for the design spec.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for time tracking, project management, and AI-powered memory storage using semantic search. It enables users to log time, manage client billing, and capture shared or personal ideas through integrated tools and team collaboration features.
    1
    -
  • F
    license
    A
    quality
    D
    maintenance
    An 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
    -
  • A
    license
    C
    quality
    D
    maintenance
    A production-ready, fully anonymized Model Context Protocol (MCP) server for TimeIQ time tracking. It allows LLM agents to view and manage time entries, projects, clients, reports, invoices, expenses, services, and timesheets via a secure stdio transport.
    100
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for time tracking and billing that allows freelancers to control timers, manage projects, and export invoices via natural language in any MCP-compatible AI assistant.
    6
    MIT

Latest Blog Posts

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/erkkiat/timesheet-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server