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.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    -
    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.
    Last updated
    1
  • F
    license
    A
    quality
    C
    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.
    Last updated
    10
  • A
    license
    C
    quality
    B
    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.
    Last updated
    100
    25
    MIT
  • A
    license
    -
    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.
    Last updated
    3
    MIT

View all related MCP servers

Related MCP Connectors

  • A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready

  • Hosted MCP server for Mini Accountant: invoices, expenses, customers, analytics, tax estimates.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

View all MCP Connectors

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