Skip to main content
Glama
sixfeetup

intervals-mcp

by sixfeetup

intervals-mcp

Ein eigenständiger MCP-Server, CLI und Claude-Code-Plugin für lokales Intervals-Zeiterfassung. Beim Starten eines Timers oder Protokollieren eines Zeiteintrags wird zuerst eine lokale SQLite-Datenbank beschrieben; Einträge werden im Hintergrund oder auf Abruf mit Intervals synchronisiert. Berichte und Abfragen sind immer rein lokal und rufen nie die Intervals-API auf.

Installation (Claude-Code-Plugin)

/plugin marketplace add sixfeetup/intervals-mcp
/plugin install intervals@intervals-mcp

Es gibt keinen Build-Schritt: Das dist/-Bundle ist im Repository eingecheckt. Einzige Anforderung ist Node >= 22.5.

Related MCP server: Productivity Tracker MCP Server

Installation (beliebiger MCP-Host)

Klonen Sie das Repository und richten Sie Ihren MCP-Host auf den gebündelten Server aus:

git clone https://github.com/sixfeetup/intervals-mcp.git
{
  "command": "node",
  "args": ["/path/to/intervals-mcp/dist/server.mjs"]
}

Konfiguration

Anmeldedaten und Einstellungen werden in dieser Reihenfolge aufgelöst:

  1. Umgebungsvariablen

  2. config.json in INTERVALS_HOME (oder ~/.intervals/)

Umgebungsvariablen

Variable

Beschreibung

INTERVALS_API_KEY

Intervals-API-Schlüssel für HTTP-Basic-Auth

INTERVALS_BASE_URL

Intervals-API-Basis-URL (Standard: https://api.myintervals.com/)

INTERVALS_PERSON_ID

Ihre Intervals-Personen-ID (für die Zeiterfassungssynchronisierung erforderlich)

INTERVALS_HOME

Überschreibt den standardmäßigen lokalen Speicherpfad (~/.intervals/)

config.json-Schlüssel

Wenn Sie eine dateibasierte Konfiguration bevorzugen, erstellen Sie config.json in INTERVALS_HOME (oder ~/.intervals/):

Schlüssel

Typ

Beschreibung

apiKey

string

Intervals-API-Schlüssel für HTTP-Basic-Auth

baseUrl

string

Intervals-API-Basis-URL (Standard: https://api.myintervals.com/)

personId

number

Ihre Intervals-Personen-ID (für die Zeiteintrags-Synchronisierung erforderlich)

syncIntervalMs

number

Hintergrund-Synchronisierungsintervall in Millisekunden

Wenn Sie intervals setup (oder den Schrägstrich-Befehl /intervals-setup) ausführen, wird diese Datei mit Berechtigungen 0600 geschrieben und der API-Schlüssel erscheint nie im Modellkontext – der Schlüssel wird in einer interaktiven, verborgenen Eingabeaufforderung in Ihrem eigenen Terminal eingegeben.

CLI

Das Bundle enthält eine abhängigkeitsfreie CLI (dist/cli.mjs, über package.json#bin als intervals verfügbar, wenn als Paket installiert):

Befehl

Beschreibung

setup

Anmeldedaten konfigurieren und die erste Projektsynchronisierung durchführen

status

DB-Pfad, Anmeldedatenquelle, Timer und ausstehende Synchronisierungen anzeigen

sync-projects

Lokalen Projektkatalog aktualisieren

sync-now

Ausstehende Zeiteinträge jetzt an Intervals übertragen

timers [recent] / timers edit <timer_id> [field=value ...] / timers delete <timer_id>

Timer anzeigen, bearbeiten oder löschen

time [range] / time edit <id> [field=value ...]

Zeiteinträge melden (today, yesterday, this-month, last-month, YYYY-MM-DD, YYYY-MM-DD..YYYY-MM-DD) oder einen Eintrag bearbeiten (stop_time=HH:mm)

project-defaults <project_id> <worktype_id> [module_id]

Standard-Worktype und optionales Modul für ein Projekt festlegen

Führen Sie node dist/cli.mjs help aus, um die vollständige Nutzungshilfe anzuzeigen.

Agent-Tools

Wenn sie als Claude-Code-Plugin installiert ist, erscheinen die MCP-Tools unter dem Präfix mcp__plugin_intervals_intervals__:

Tool

Beschreibung

find_project

Lokalen Projektkatalog nach übereinstimmenden Namen/IDs durchsuchen

find_worktype

Lokalen Worktype-Katalog durchsuchen

find_module

Lokalen Modulkatalog durchsuchen (module sind projektbezogen)

start_timer

Lokalen Timer mit Beschreibung starten; optionale start_at-Angabe (ISO-8601), sonst jetzt. Optional project_id/worktype_id/module_id-Hinweise

stop_timer

Timer stoppen und entweder einen Zeiteintrag anhängen (wenn Projekt/Worktype angegeben) oder einen unvollständigen Timer hinterlassen; Entwürfe werden mit project_defaults verknüpft

get_timers

Aktive und kürzlich gestoppte Timer auflisten. Bei Angabe von include_unused=true werden die letzten 50 gestoppten Timer ohne Zeiteintrag angezeigt

delete_timer

Aktiven Timer oder gestoppten Timer ohne verknüpften Zeiteintrag löschen

get_time_entries

Zeiteinträge nach Datumsbereich anzeigen (Standard: heute). Optional mit Projektfilter

log_time

Abgeschlossenen Zeiteintrag erfassen (Dauer in Minuten, wenn stop_time fehlt, wird duration_minutes verwendet), optional project_id/worktype_id/module_id angeben

update_time_entry

Lokalen Zeiteintrag per ID aktualisieren (z. B. project_id, worktype_id, module_id, stop_time)

delete_time_entry

Lokalen oder synchronisierten Zeiteintrag per ID löschen

get_project_defaults

Eine Projekt-ID angeben, um die konfigurierten Standardeinstellungen für Worktype/Modul zu erhalten

set_project_defaults

Standard-Worktype bzw. -Modul für ein Projekt konfigurieren; nur aus dem lokalen Katalog gültig

sync_projects

Lokalen Projektkatalog mit der Intervals-API aktualisieren

sync_time_entries

Lokale Zeiteinträge mit der Intervals-API synchronisieren

get_sync_status

Anzahl der ausstehenden (nicht synchronisierten) Zeiteinträge und Zeitpunkt der letzten Synchronisierung anzeigen

stats

Zeitbereichsstatistiken über Zeiteinträge liefern (Benutzer-ID pro Zeiteintrag übernehmen)

Alle Toolnamen sind mit mcp__plugin_intervals_intervals__ versehen, wenn sie über das /intervals-Plugin verfügbar gemacht werden.

Funktionsweise

  • Timer sind rein lokal. Das Starten eines Timers schreibt eine lokale Zeile nur mit einer Beschreibung. Projekt-, Worktype- und Modul-Hinweise sind optional.

  • Laufende Timer können neu klassifiziert werden. Ändern Sie die Projekt-, Worktype- oder Modul-Hinweise eines Timers, bevor Sie ihn stoppen; die Klassifizierung wird beim Anlegen des Zeiteintrags angewendet.

  • Stoppen/Anwenden erstellt einen Zeiteintrag. Beim Stoppen eines Timers geben Sie das Projekt an (oder nutzen Standardwerte), und Sie können worktype_id/module_id optional setzen. Wenn keines angegeben ist, werden Standardwerte aus den Projekteinstellungen verwendet – und nur erzwungen, wenn keine Standardwerte vorhanden sind.

  • Unerledigte Timer werden erhalten. Wenn Sie einen Timer stoppen, ohne Aufgabe/Worktype/Modul anzugeben, wird der Timer nicht gelöscht. Er wird als „unvollständig" markiert und beim nächsten Start eines neuen Timers automatisch mit Standard-Hinweisen befüllt, wobei start_time und duration_seconds auf 0 gesetzt werden.

  • Zeiteinträge sind lokal-first. Beim Stoppen wird ein Zeiteintrag erstellt und sofort versucht, ihn mit Intervals zu synchronisieren. Wenn das fehlschlägt, bleibt er in der Warteschlange und wird bei der nächsten Server-Synchronisierung erneut versucht.

  • Das Löschen eines Timers ist sicher. Aktive Timer oder gestoppte Timer ohne erstellten Zeiteintrag können bedenkenlos gelöscht werden. Wenn ein Timer einen zugehörigen lokalen Zeiteintrag hat, schlägt das Löschen fehl und verweist auf die Zeiteintrags-ID. Der Zeiteintrag selbst kann über delete_time_entry gelöscht werden, was den abgeschlossenen Timer ebenfalls entfernt.

  • Eine Aktualisierung ist nie automatisch. Der Projektkatalog wird bei der Einrichtung abgerufen und kann jederzeit mit einer Aktualisierung synchronisiert werden – nicht bei jedem Toolaufruf.

  • Zeiteinträge werden serverseitig gespeichert. Das Stoppen eines Timers erstellt einen lokalen Zeiteintrag und versucht, ihn sofort zu synchronisieren. Fehlgeschlagene Einträge werden bei späteren Aufrufen erneut versucht.

  • Sicherheit. API-Schlüssel werden über eine Umgebungsvariable oder die Konfigurationsdatei bereitgestellt, nie über Toolargumente. Der lokale Speicherort ist ~/.intervals/.

A
license - permissive license
Not graded
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
    Not graded
    quality
    D
    maintenance
    Enables recording, querying, and summarizing daily work entries with tags using a local SQLite database. Supports work logging, search, timeline queries, tag management, and automated reminders for tracking daily tasks.
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language task management including logging, updating, and summarizing productivity activities across multiple categories using a local SQLite database. It allows users to manage workflows and generate time-based summaries through standardized Model Context Protocol tools.
    1
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables multi-project workspaces to share structured notes, API contracts, and handoff messages via a local SQLite database, with versioning and read tracking.
    GPL 3.0

View all related MCP servers

Related MCP Connectors

  • Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.

  • Business-day, SLA, cron and recurrence calculations — offline, holiday-aware, no network.

  • Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.

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/sixfeetup/intervals-mcp'

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