Skip to main content
Glama
dpshade

WakaTime MCP Server

by dpshade

WakaTime MCP Server

A Model Context Protocol (MCP) server that provides high-signal coding analytics from your WakaTime data.

  • Direct mode: FastMCP serves Streamable HTTP at http://localhost:8000/mcp

  • Proxy mode: mcp-proxy exposes the server over SSE/HTTP and Caddy adds token auth (recommended for self-hosting)

Tooling / API

Tool

Purpose

Key arguments

get_coding_stats

Detailed stats for a period

range (last_7_days, last_30_days, last_6_months, last_year, all_time)

get_summary

Activity breakdown for a date/range

start_date, end_date, project

get_all_time

Total coding time since account creation

project (optional)

get_status_bar

Current day status (like editor status bar)

(none)

list_projects

List/search tracked projects

query (optional)

Configuration

Configure via environment variables (or a .env file for the self-hosted scripts).

Variable

Description

Required

WAKATIME_API_KEY

Your API key from https://wakatime.com/settings/api-key

Yes

MCP_AUTH_KEY

Token for auth proxy (proxy/self-hosted mode)

Proxy mode

PORT

Direct-mode port (default: 8000)

No

Development (Direct mode)

  1. Install (uv required)

    git clone https://github.com/dpshade/wakatime-mcp.git
    cd wakatime-mcp
    
    uv sync --no-install-project
  2. Run

    WAKATIME_API_KEY="your_wakatime_api_key_here" uv run -- python src/server.py
  3. Connect

    • URL: http://localhost:8000/mcp

    • Auth: none

Deployment

This mode runs the MCP server with FastMCP’s default stdio transport and uses mcp-proxy to expose it over HTTP:

Internet -> (optional Tailscale Funnel) -> Caddy (auth) -> mcp-proxy -> FastMCP (stdio)
                                   :8770         :8767
  1. Configure

    cp .env.example .env
    # Edit .env: set WAKATIME_API_KEY and a strong MCP_AUTH_KEY
  2. Download Caddy (auth proxy)

    curl -L https://github.com/caddyserver/caddy/releases/latest/download/caddy_linux_amd64 -o deploy/caddy
    chmod +x deploy/caddy
  3. Start

    ./deploy/start.sh
  4. Endpoints

    • Auth proxy (recommended):

      • SSE: http://localhost:8770/sse

      • Streamable HTTP: http://localhost:8770/mcp

    • Internal (no auth; do not expose publicly):

      • SSE: http://localhost:8767/sse

      • Streamable HTTP: http://localhost:8767/mcp

mcp-proxy also exposes a health endpoint at http://localhost:8767/status (and via auth proxy at http://localhost:8770/status).

Systemd (persistent)

./deploy/install-systemd.sh
sudo systemctl enable --now mcp-wakatime mcp-wakatime-auth

Optional: Tailscale Funnel

If you use Tailscale, you can publish the auth proxy port:

tailscale funnel --bg --set-path=/wakatime localhost:8770
tailscale funnel --bg 443 on

Option 2: Docker

Runs mcp-proxy + the server in a container.

cd deploy
docker-compose up -d
  • Endpoint (no auth): http://localhost:8767/sse

  • If you want auth, run Caddy on the host (or add it to your own compose stack) and proxy to 8767.

Option 3: Render

This repo includes render.yaml for deploying the direct Python server.

  • Set environment variable: WAKATIME_API_KEY

  • Your service endpoint will be: https://<your-service>/mcp

Client setup

MCP Inspector

npx @modelcontextprotocol/inspector

Then connect using:

  • Direct mode: http://localhost:8000/mcp (Streamable HTTP)

  • Proxy mode: http://localhost:8770/sse (SSE)

Poke / other hosted clients (proxy mode)

Use the auth proxy SSE endpoint and send MCP_AUTH_KEY via one of:

  • Authorization: Bearer <MCP_AUTH_KEY>

  • X-API-Key: <MCP_AUTH_KEY>

  • Api-Key: <MCP_AUTH_KEY>

Security notes

  • Generate a strong auth key:

    openssl rand -hex 32
  • Never expose the unauthenticated mcp-proxy port (8767) to the public internet.

License

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

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/dpshade/wakatime-mcp'

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