mcp-cronos
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., "@mcp-cronosadd a diary entry: project SmarTicket, fixed login bug"
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.
mcp-cronos
MCP server for structured daily work diary management — entries, standup summaries, weekly reports, full-text search, and automatic git commits.
English
Features
Add entries: Add new work entries to the daily diary, creating files and directories automatically
Read diary: Read entries by single date, date range, or last N days
Standup summary: Generate a high-level, narrative summary ready for standup meetings
Blockers management: Set and update the blockers section of any diary file
End-of-day workflow: Rewrite and restructure the day's entries, generate day summary, technical summary, and standup message
Consolidate diary: Merge fragmented or duplicate entries into a coherent file
List projects: List all projects worked on in a given period
Full-text search: Search diary entries with regex support
Weekly report: Summarize the week grouped by project
Append to project: Add a sub-section to an existing project entry without fragmentation
Write end-of-day file: Persist the structured end-of-day content to disk
Internationalisation: Built-in Italian and English language packs, configurable via
cronos.tomlGit integration: Automatic commit (and optional push) at end-of-day
Installation
pip install mcp-cronosOr with uv:
uv add mcp-cronosConfiguration
Claude Code (settings.json)
Add the following to your Claude Code settings file (typically ~/.claude/settings.json):
{
"mcpServers": {
"cronos": {
"command": "uvx",
"args": ["mcp-cronos"],
"env": {
"CRONOS_DIARIO_PATH": "/path/to/your/Diary"
}
}
}
}If you are running from a local checkout instead of the published package:
{
"mcpServers": {
"cronos": {
"command": "uv",
"args": [
"--directory",
"/path/to/Cronos",
"run",
"mcp-cronos"
],
"env": {
"CRONOS_DIARIO_PATH": "/path/to/your/Diary"
}
}
}
}The CRONOS_DIARIO_PATH environment variable is required. It must point to the root directory of your diary.
cronos.toml
Place a cronos.toml file in your diary root directory (i.e. $CRONOS_DIARIO_PATH/cronos.toml), or at ~/.config/cronos/cronos.toml. An explicit path can also be set via the CRONOS_CONFIG_PATH environment variable.
All settings are optional and fall back to language-specific defaults when omitted.
[cronos]
# Language: "it" (default) or "en"
lang = "en"
[cronos.sections]
# Override section heading labels used in diary files.
# These must match the headings already present in existing files if you
# are migrating from the default Italian labels.
entries = "What I did yesterday"
blockers = "Blockers"
day_summary = "Daily summary"
tech_summary = "Technical summary"
standup_message = "Standup message"
[cronos.diary]
# Format string for the file title. Supports {date} placeholder.
title_format = "For Stand-up - {date}"
[cronos.git]
# Enable automatic git commit at end-of-day (default: true)
enabled = true
# Push after committing (default: true)
auto_push = true
# Commit message template. Supports {date} placeholder.
commit_message = "diary: end of day {date}"Custom Templates
Template files for generated output (end-of-day file, standup message, etc.) can be placed in a templates/ subdirectory inside your diary root. When present, these override the built-in defaults. The server loads templates from $CRONOS_DIARIO_PATH/templates/ automatically.
Tools
cronos_aggiungi_entry
Add a new entry to the daily diary. Creates the file and year/month directory structure if they do not exist.
Required parameters:
progetto(string): Project name (e.g."SmarTicket","MCP Cronos")descrizione(string): Short description of the work done (e.g."Fix auth bug")paragrafo_intro(string): Introductory paragraph summarising what was done
Optional parameters:
contenuto(string): Additional content — sub-sections, bullet points, coderichiesto_da(string): Name of the person who requested the workrepository(string): Repository namebranch(string): Branch namejira_ticket(string): Jira ticket code (e.g."SMART-123")jira_url(string): Jira ticket URLgitlab_mr(string): GitLab MR number (e.g."!456")gitlab_mr_url(string): GitLab MR URLdata(string): Date inYYYY-MM-DDformat (default: today)
Returns: Confirmation with file path and entry details.
cronos_leggi_diario
Read diary content for a date or date range. All parameters are optional; when none are supplied the tool returns today's diary.
Parameters (mutually exclusive, use one):
data(string): Single dateYYYY-MM-DDdata_inizio+data_fine(strings): Date rangeYYYY-MM-DDultimi_giorni(integer): Read the last N days
Returns: Diary content including entries, projects, and blockers.
cronos_imposta_bloccanti
Set or update the Blockers section of a diary file. The file must already exist (use cronos_aggiungi_entry to create it).
Required parameters:
bloccanti(string): Blocker text. Use"None"/"Nessuno"when there are no blockers.
Optional parameters:
data(string): DateYYYY-MM-DD(default: today)
Returns: Confirmation with file path.
cronos_riassunto_standup
Generate a narrative, high-level standup summary. The tool returns the raw diary content together with style instructions so that the AI assistant can produce a fluent, professional standup message free of implementation details.
Optional parameters:
data(string): Single dateYYYY-MM-DD(default: last working day)data_inizio(string): Range startYYYY-MM-DDdata_fine(string): Range endYYYY-MM-DD
Returns: Diary content with style instructions for message generation.
cronos_fine_giornata
End-of-day workflow trigger. Reads the day's raw entries and returns detailed instructions for generating four structured outputs: rewritten entries, a day summary, a technical summary, and a standup message.
Optional parameters:
data(string): DateYYYY-MM-DD(default: today)
Returns: Raw diary entries with generation instructions.
cronos_consolida_diario
Consolidate the diary by merging fragmented or duplicate entries. The tool reads the current file, identifies structural issues, and returns instructions for rewriting it coherently.
Optional parameters:
data(string): DateYYYY-MM-DD(default: today)
Returns: File content with analysis and consolidation instructions.
cronos_lista_progetti
List all projects mentioned in the diary over a given period.
Optional parameters:
data_inizio(string): Start dateYYYY-MM-DDdata_fine(string): End dateYYYY-MM-DDultimi_giorni(integer): Number of days to analyse (default: 30)
Returns: Project list with occurrence count and dates.
cronos_cerca
Full-text search across diary entries. Case-insensitive, with regex support.
Required parameters:
query(string): Text to search for (supports regular expressions)
Optional parameters:
data_inizio(string): Search range startYYYY-MM-DDdata_fine(string): Search range endYYYY-MM-DDultimi_giorni(integer): Days to search (default: 90)
Returns: List of matches with date, project, and surrounding context.
cronos_settimana
Weekly summary of the diary grouped by project. Shows how many days each project was worked on during the week, with an activity overview.
Optional parameters:
data(string): Any date within the week to analyseYYYY-MM-DD(default: current week)
Returns: Per-project summary with day count, dates, and activities.
cronos_aggiungi_a_progetto
Append a sub-section (H4) to an existing project entry in today's diary. Avoids fragmentation when logging multiple work sessions on the same project. If no matching project entry is found, a new standard entry is created instead.
Required parameters:
progetto(string): Exact project name as it appears in the existing H3 headingtitolo_fase(string): Sub-section title (e.g."Fix login bug")contenuto(string): Sub-section content
Optional parameters:
richiesto_da(string): Name of the person who requested the workrepository(string): Repository namebranch(string): Branch namejira_ticket(string): Jira ticket codejira_url(string): Jira ticket URLgitlab_mr(string): GitLab MR numbergitlab_mr_url(string): GitLab MR URLdata(string): DateYYYY-MM-DD(default: today)
Returns: Confirmation with mode (aggiunto_a_esistente or nuova_entry).
cronos_scrivi_fine_giornata
Write the end-of-day file with the fully generated content. Use this tool after cronos_fine_giornata: first generate the content following the returned instructions, then call this tool to persist it.
Required parameters:
contenuto(string): Complete markdown content for the end-of-day file
Optional parameters:
data(string): DateYYYY-MM-DD(default: today)
Returns: Confirmation with the written file path.
Diary Format
File Structure
Diary files are organised in a year/month hierarchy under the diary root:
Diary/
├── cronos.toml (optional configuration)
├── templates/ (optional custom templates)
└── {year}/
└── {month}/
└── {year}-{month}-{day}.mdExample: Diary/2025/04/2025-04-09.md
Markdown Format
# For Stand-up - April 9, 2025
## What I did yesterday
### ProjectName - Short description
Introductory paragraph summarising what was accomplished.
#### Sub-section (optional)
- Detail point 1
- Detail point 2
**References:**
- Repository: repo-name
- Branch: `branch-name`
- Jira: [TICKET-123](https://your.jira/browse/TICKET-123)
- GitLab MR: [MR !456](https://gitlab.example.com/project/-/merge_requests/456)
---
## Blockers
NoneLanguages
Built-in language packs: Italian (it, default) and English (en). Set via cronos.toml:
[cronos]
lang = "en"Section headings, month names, weekday names, title format, and default blocker text are all localised automatically when the language is switched.
Italiano
Funzionalita'
Aggiunta entry: Aggiunge nuove entry al diario giornaliero, creando file e cartelle automaticamente
Lettura diario: Legge le entry per data singola, range di date o ultimi N giorni
Riassunto standup: Genera un riassunto narrativo ad alto livello pronto per gli standup
Gestione bloccanti: Imposta e aggiorna la sezione Bloccanti di qualsiasi file del diario
Workflow fine giornata: Riscrive e ristruttura le entry del giorno, genera riassunto giornata, riassunto tecnico e messaggio standup
Consolidamento diario: Unisce entry frammentate o duplicate in un file coerente
Lista progetti: Elenca tutti i progetti su cui si e' lavorato in un periodo
Ricerca full-text: Cerca nel diario con supporto regex
Report settimanale: Riassume la settimana raggruppato per progetto
Aggiungi a progetto: Aggiunge una sotto-sezione a un'entry di progetto esistente senza frammentazione
Scrivi file fine giornata: Persiste il contenuto strutturato di fine giornata su disco
Internazionalizzazione: Pacchetti lingua italiano e inglese integrati, configurabili via
cronos.tomlIntegrazione Git: Commit automatico (e push opzionale) a fine giornata
Installazione
pip install mcp-cronosOppure con uv:
uv add mcp-cronosConfigurazione
Claude Code (settings.json)
Aggiungi al file di configurazione di Claude Code (tipicamente ~/.claude/settings.json):
{
"mcpServers": {
"cronos": {
"command": "uvx",
"args": ["mcp-cronos"],
"env": {
"CRONOS_DIARIO_PATH": "/percorso/al/tuo/Diario"
}
}
}
}Se stai eseguendo da un checkout locale invece del pacchetto pubblicato:
{
"mcpServers": {
"cronos": {
"command": "uv",
"args": [
"--directory",
"/percorso/a/Cronos",
"run",
"mcp-cronos"
],
"env": {
"CRONOS_DIARIO_PATH": "/percorso/al/tuo/Diario"
}
}
}
}La variabile d'ambiente CRONOS_DIARIO_PATH e' obbligatoria. Deve puntare alla directory radice del diario.
cronos.toml
Posiziona un file cronos.toml nella directory radice del diario (ovvero $CRONOS_DIARIO_PATH/cronos.toml), oppure in ~/.config/cronos/cronos.toml. Un percorso esplicito puo' essere impostato tramite la variabile d'ambiente CRONOS_CONFIG_PATH.
Tutte le impostazioni sono opzionali e usano i valori predefiniti della lingua quando omesse.
[cronos]
# Lingua: "it" (predefinito) o "en"
lang = "it"
[cronos.sections]
# Sovrascrive le etichette delle sezioni usate nei file del diario.
# Devono corrispondere agli heading presenti nei file esistenti se si sta
# migrando dalle etichette predefinite in italiano.
entries = "Cosa ho fatto ieri"
blockers = "Bloccanti"
day_summary = "Riassunto della giornata"
tech_summary = "Riassunto tecnico"
standup_message = "Messaggio per lo standup"
[cronos.diary]
# Stringa di formato per il titolo del file. Supporta il placeholder {date}.
title_format = "Per lo Stand-up - {date}"
[cronos.git]
# Abilita commit git automatico a fine giornata (predefinito: true)
enabled = true
# Push dopo il commit (predefinito: true)
auto_push = true
# Template del messaggio di commit. Supporta il placeholder {date}.
commit_message = "diario: fine giornata {date}"Template Personalizzati
I file template per l'output generato (file di fine giornata, messaggio standup, ecc.) possono essere posizionati in una sottodirectory templates/ all'interno della radice del diario. Quando presenti, questi sovrascrivono i valori predefiniti integrati. Il server carica i template da $CRONOS_DIARIO_PATH/templates/ automaticamente.
Tool
cronos_aggiungi_entry
Aggiunge una nuova entry al diario giornaliero. Crea il file e la struttura di directory anno/mese se non esistono.
Parametri obbligatori:
progetto(string): Nome del progetto (es."SmarTicket","MCP Cronos")descrizione(string): Breve descrizione del lavoro svolto (es."Fix bug autenticazione")paragrafo_intro(string): Paragrafo introduttivo che riassume cosa e' stato fatto
Parametri opzionali:
contenuto(string): Contenuto aggiuntivo — sottosezioni, elenchi puntati, codicerichiesto_da(string): Nome della persona che ha richiesto il lavororepository(string): Nome del repositorybranch(string): Nome del branchjira_ticket(string): Codice ticket Jira (es."SMART-123")jira_url(string): URL del ticket Jiragitlab_mr(string): Numero MR GitLab (es."!456")gitlab_mr_url(string): URL della MR GitLabdata(string): Data nel formatoYYYY-MM-DD(predefinito: oggi)
Restituisce: Conferma con path del file e dettagli dell'entry.
cronos_leggi_diario
Legge il contenuto del diario per una data o un range di date. Tutti i parametri sono opzionali; se nessuno viene fornito restituisce il diario di oggi.
Parametri (mutualmente esclusivi, usarne uno):
data(string): Data singolaYYYY-MM-DDdata_inizio+data_fine(string): Range di dateYYYY-MM-DDultimi_giorni(integer): Legge gli ultimi N giorni
Restituisce: Contenuto del diario con entry, progetti e bloccanti.
cronos_imposta_bloccanti
Imposta o aggiorna la sezione Bloccanti di un file del diario. Il file deve esistere (usare cronos_aggiungi_entry per crearlo).
Parametri obbligatori:
bloccanti(string): Testo dei bloccanti. Usare"Nessuno"quando non ci sono bloccanti.
Parametri opzionali:
data(string): DataYYYY-MM-DD(predefinito: oggi)
Restituisce: Conferma con path del file.
cronos_riassunto_standup
Genera un riassunto discorsivo ad alto livello per lo standup. Il tool restituisce il contenuto grezzo del diario insieme a istruzioni di stile affinche' l'assistente AI produca un messaggio fluido e professionale privo di dettagli implementativi.
Parametri opzionali:
data(string): Data singolaYYYY-MM-DD(predefinito: ultimo giorno lavorativo)data_inizio(string): Inizio rangeYYYY-MM-DDdata_fine(string): Fine rangeYYYY-MM-DD
Restituisce: Contenuto del diario con istruzioni di stile per la generazione del messaggio.
cronos_fine_giornata
Avvia il workflow di fine giornata. Legge le entry grezze del giorno e restituisce istruzioni dettagliate per generare quattro output strutturati: entry riscritte, riassunto della giornata, riassunto tecnico e messaggio per lo standup.
Parametri opzionali:
data(string): DataYYYY-MM-DD(predefinito: oggi)
Restituisce: Entry grezze del diario con istruzioni di generazione.
cronos_consolida_diario
Consolida il diario unendo entry frammentate o duplicate. Il tool rilegge il file corrente, identifica i problemi di struttura e restituisce istruzioni per riscriverlo in modo coerente.
Parametri opzionali:
data(string): DataYYYY-MM-DD(predefinito: oggi)
Restituisce: Contenuto del file con analisi e istruzioni per il consolidamento.
cronos_lista_progetti
Elenca tutti i progetti menzionati nel diario in un dato periodo.
Parametri opzionali:
data_inizio(string): Data inizioYYYY-MM-DDdata_fine(string): Data fineYYYY-MM-DDultimi_giorni(integer): Numero di giorni da analizzare (predefinito: 30)
Restituisce: Lista progetti con numero di occorrenze e date.
cronos_cerca
Ricerca full-text nel diario. Case-insensitive, con supporto regex.
Parametri obbligatori:
query(string): Testo da cercare (supporta espressioni regolari)
Parametri opzionali:
data_inizio(string): Inizio range di ricercaYYYY-MM-DDdata_fine(string): Fine range di ricercaYYYY-MM-DDultimi_giorni(integer): Giorni da cercare (predefinito: 90)
Restituisce: Lista di match con data, progetto e contesto circostante.
cronos_settimana
Riassunto settimanale del diario raggruppato per progetto. Mostra su quanti giorni si e' lavorato per ogni progetto durante la settimana, con riepilogo delle attivita'.
Parametri opzionali:
data(string): Qualsiasi data nella settimana da analizzareYYYY-MM-DD(predefinito: settimana corrente)
Restituisce: Riassunto per progetto con numero di giorni, date e attivita'.
cronos_aggiungi_a_progetto
Aggiunge una sotto-sezione (H4) a un'entry di progetto esistente nel diario di oggi. Evita la frammentazione quando si registrano piu' sessioni di lavoro sullo stesso progetto. Se non viene trovata una entry corrispondente, viene creata una nuova entry standard.
Parametri obbligatori:
progetto(string): Nome esatto del progetto come appare nell'heading H3 esistentetitolo_fase(string): Titolo della sotto-sezione (es."Fix bug login")contenuto(string): Contenuto della sotto-sezione
Parametri opzionali:
richiesto_da(string): Nome della persona che ha richiesto il lavororepository(string): Nome del repositorybranch(string): Nome del branchjira_ticket(string): Codice ticket Jirajira_url(string): URL del ticket Jiragitlab_mr(string): Numero MR GitLabgitlab_mr_url(string): URL della MR GitLabdata(string): DataYYYY-MM-DD(predefinito: oggi)
Restituisce: Conferma con modalita' (aggiunto_a_esistente o nuova_entry).
cronos_scrivi_fine_giornata
Scrive il file di fine giornata con il contenuto generato. Usare questo tool DOPO cronos_fine_giornata: prima generare il contenuto seguendo le istruzioni ricevute, poi chiamare questo tool per persistere il risultato.
Parametri obbligatori:
contenuto(string): Contenuto markdown completo del file di fine giornata
Parametri opzionali:
data(string): DataYYYY-MM-DD(predefinito: oggi)
Restituisce: Conferma con path del file scritto.
Formato Diario
Struttura File
I file del diario sono organizzati in una gerarchia anno/mese sotto la directory radice:
Diario/
├── cronos.toml (configurazione opzionale)
├── templates/ (template personalizzati opzionali)
└── {anno}/
└── {mese}/
└── {anno}-{mese}-{giorno}.mdEsempio: Diario/2025/04/2025-04-09.md
Formato Markdown
# Per lo Stand-up - 9 Aprile 2025
## Cosa ho fatto ieri
### NomeProgetto - Breve descrizione
Paragrafo introduttivo che riassume cosa e' stato realizzato.
#### Sottosezione (opzionale)
- Punto di dettaglio 1
- Punto di dettaglio 2
**Riferimenti:**
- Repository: nome-repository
- Branch: `nome-branch`
- Jira: [TICKET-123](https://your.jira/browse/TICKET-123)
- Gitlab Mr: [MR !456](https://gitlab.esempio.it/progetto/-/merge_requests/456)
---
## Bloccanti
NessunoLingue
Pacchetti lingua integrati: Italiano (it, predefinito) e Inglese (en). Si imposta via cronos.toml:
[cronos]
lang = "it"Intestazioni di sezione, nomi dei mesi, nomi dei giorni della settimana, formato del titolo e testo predefinito dei bloccanti sono tutti localizzati automaticamente al cambio della lingua.
License
MIT
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/mauriziomocci/mcp-cronos'
If you have feedback or need assistance with the MCP directory API, please join our Discord server