chron
Инструменты ИИ показывают, когда вы отправили сообщение. Chron также фиксирует, когда ИИ ответил, и ведет постоянный, доступный для запросов журнал каждого обмена данными во всех используемых вами инструментах.
Работает с Claude Desktop, Claude Code, Cursor, Windsurf и любым инструментом ИИ, совместимым с MCP.
Зачем это нужно
Инструменты ИИ по умолчанию не создают аудиторский след. Вы не можете ответить на вопросы:
Что именно сказал ИИ и когда?
Сколько времени потребовалось ИИ для ответа?
Каким был полный диалог, приведший к этому результату?
О чем я спрашивал Claude на прошлой неделе по поводу этой кодовой базы?
Chron решает эту проблему. Каждый обмен данными записывается с точной локальной датой и временем (включая смещение часового пояса) в файл SQLite, который принадлежит вам. Никакого облака, никакой привязки к поставщику, никакие данные не покидают ваш компьютер.
Related MCP server: chron
Установка
Добавьте в конфигурацию MCP вашего инструмента ИИ:
{
"mcpServers": {
"chron": {
"command": "npx",
"args": ["-y", "chron-mcp"]
}
}
}Первый запуск автоматически создает ~/.chron/chron.db. Никакой настройки базы данных, никаких переменных окружения, никаких миграций.
Что записывается
Каждый обмен данными записывается с точными локальными временными метками — сообщение пользователя при получении, ответ помощника при отправке:
[user: 2026-05-08 14:32:11 +02:00 | assistant: 2026-05-08 14:32:43 +02:00]
The main risks of deploying this contract are...Разница между временными метками пользователя и помощника — это реальное время генерации. Оба значения сохраняются в вашей локальной базе данных SQLite с полным смещением часового пояса.
Настройка по инструментам
Claude Desktop
Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"chron": {
"command": "npx",
"args": ["-y", "chron-mcp"]
}
}
}Claude Code
claude mcp add chron -- npx -y chron-mcpЗатем добавьте хук навыка в ~/.claude/settings.json:
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "cat ~/.chron/chron.skill.md"
}
]
}
]
}
}Cursor
Отредактируйте ~/.cursor/mcp.json:
{
"mcpServers": {
"chron": {
"command": "npx",
"args": ["-y", "chron-mcp"]
}
}
}Windsurf
Отредактируйте ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"chron": {
"command": "npx",
"args": ["-y", "chron-mcp"]
}
}
}Файл вспомогательных навыков
Chron поставляется с skills/chron.skill.md — текстовым файлом инструкций, который объясняет ИИ, как автоматически использовать инструменты MCP. Загрузите его в свой инструмент ИИ один раз. После этого ИИ:
Создает или возобновляет именованный сеанс в начале каждой беседы
Записывает ваше сообщение перед началом ответа (фиксирует реальную временную метку пользователя)
Записывает свой ответ после его составления (фиксирует реальную временную метку помощника)
Показывает
[user: YYYY-MM-DD HH:MM:SS ±HH:MM | assistant: YYYY-MM-DD HH:MM:SS ±HH:MM]в начале каждого ответаИзвлекает историю предыдущих сеансов, чтобы контекст никогда не терялся между беседами
Инструменты MCP
Инструмент | Описание |
| Создать или возобновить именованный сеанс аудита |
| Записать одно сообщение с текущей локальной датой и временем |
| Атомарно записать пару пользователь/помощник (для пакетного импорта) |
| Перечислить все сеансы в порядке их последней активности |
| Получить полный журнал с временными метками для сеанса |
Конфигурация
Переменная окружения | По умолчанию | Описание |
|
| Путь к файлу базы данных SQLite |
|
| Установите |
| (нет) | Токен Bearer для режима HTTP |
|
| Порт для режима HTTP |
Режим HTTP+SSE (командный / самохостинг)
Для команд или удаленного использования запустите Chron как HTTP-сервер:
CHRON_TRANSPORT=http CHRON_API_KEY=your-key PORT=3001 npx chron-mcpУкажите URL в вашей конфигурации MCP:
{
"mcpServers": {
"chron": {
"url": "https://your-server/mcp",
"headers": {
"Authorization": "Bearer your-key"
}
}
}
}Ваши данные
Ваш журнал аудита находится в ~/.chron/chron.db — это один файл SQLite на вашем компьютере. Запрашивайте его напрямую с помощью любого инструмента SQLite:
sqlite3 ~/.chron/chron.db \
"SELECT s.title, m.role, m.content, m.created_at
FROM messages m JOIN sessions s ON s.id = m.session_id
ORDER BY m.created_at"Никакого облака, никакой телеметрии, никакие данные не покидают ваш компьютер. Измените расположение с помощью CHRON_DB_PATH.
Лицензия
Copyright (c) 2026 Nivaya. Все права защищены.
Исходный код является публичным только для прозрачности. Клонирование, создание форков, модификация и распространение не допускаются без явного письменного разрешения. Полные условия см. в LICENSE.
Available Tools
6 toolsget_session_historyA
Retrieve the full timestamped audit log for a session, oldest first.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| limit | No | Return only the most recent N messages |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behaviors. The description implies read-only but does not mention authentication, error handling, or side effects. Inconsistency arises with the limit parameter's description ('most recent N') contradicting the main description's 'full' and 'oldest first'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loading the core action and resource. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate given low complexity, but lacks details on return format (structure of audit log entries), behavior when limit is used (order), error handling, and pagination. No output schema further heightens the need for these details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only limit has a description). The main description does not clarify the session_id parameter beyond its type, and the limit parameter's description ('most recent N') contradicts the main description's 'full' and 'oldest first', causing confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'full timestamped audit log for a session', with ordering 'oldest first'. It distinguishes from sibling tools like log_exchange (logging) or list_sessions (listing sessions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (to retrieve history of a session). However, it does not explicitly exclude alternative uses or mention when not to use it, such as if a more filtered query is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sessionsA
List all audit sessions ordered by most recently active. Returns id, title, ai_tool, message_count, created_at, updated_at.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Return only the most recent N sessions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses ordering and returned fields, but omits if the operation is read-only, if there are pagination limits, or if destructive actions occur. Adequate for a simple list, but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences with front-loaded information, no redundant words, efficiently conveys purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists return fields and ordering. However, it lacks details on default limit behavior or pagination, leaving minor gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description does not add meaning beyond the schema's description of the 'limit' parameter. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all audit sessions'), the ordering ('most recently active'), and the returned fields, distinguishing it from sibling tools like get_session_history which likely retrieves a single session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies listing all sessions but does not explicitly guide when to use this tool over siblings like get_session_history or start_session. No 'when not to use' or alternative mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_exchangeA
Record a user+assistant exchange from historical or batch imports only. Do NOT use for live conversations — both timestamps are captured at the same instant with no real gap. For live sessions always call log_message twice: once for the user message, once for the assistant response.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by start_session | |
| user_content | Yes | The exact user message | |
| assistant_content | Yes | The exact assistant response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses that both timestamps are captured at the same instant, a key behavioral trait. Does not cover permissions or error handling, but adequate for this simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. Front-loaded with purpose and restriction, then provides alternative. Perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 params and no output schema, the description covers the use case, behavioral nuance, and sibling contrast. Could mention return value, but still fairly complete for a simple logging tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds no new per-parameter details, only overall context. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it records a user+assistant exchange, specifying it's for historical or batch imports only. Distinguishes from sibling tool log_message with explicit scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Do NOT use for live conversations' and provides the alternative: use log_message twice for live sessions. Excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_messageA
Record a single message (user or assistant) with the current local datetime and timezone offset. Call before responding for user messages, and before sending for assistant messages.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID returned by start_session | |
| role | Yes | ||
| content | Yes | Full message text |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool records the current local datetime and timezone offset. No annotations exist, so description carries the burden. Could mention return value, but core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second gives usage guidance. No unnecessary words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks information about the return value (e.g., does it return a message ID or just success?). Also does not explicitly mention prerequisite of a valid session (though schema covers session_id). For a simple logging tool, mostly adequate but missing response details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers session_id and content descriptions (67% coverage). Description adds value by explaining how to use the role parameter in context of when to call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Record a single message (user or assistant)' with a specific verb and resource. It distinguishes from the sibling tool 'log_exchange' by focusing on individual messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit instructions: 'Call before responding for user messages, and before sending for assistant messages.' This provides clear context on when to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_sessionA
Create a new audit session or resume an existing one by title. Call this at the start of every conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Descriptive session title, e.g. "Contract review — 2026-05-08" | |
| ai_tool | No | AI tool name: "claude", "cursor", "windsurf", etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It lacks details on whether resuming a session overwrites data, requires authentication, or has any side effects. The agent gets no insight into what happens beyond the basic create/resume action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and usage instruction. Every word earns its place without redundancy or verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and when to use, but given no output schema or annotations, it omits what the tool returns or any behavioral nuances like session ID or error conditions. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description only adds 'by title' context, which echoes the schema's title description. No additional meaning is provided for the ai_tool parameter, so the description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates or resumes an audit session by title, which distinguishes it from siblings like get_session_history or list_sessions. The verb 'Create' and 'resume' along with resource 'audit session' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this at the start of every conversation,' providing clear usage context. It does not explicitly exclude alternatives, but the sibling tools serve different purposes, so an agent can infer when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_sessionA
Verify the tamper-evident hash chain for a session. Returns valid=true if no rows were edited after logging, or the first broken link if tampering is detected.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID to verify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adequately explains the verification outcome (valid=true or broken link) but does not mention potential side effects or behavior on non-existent sessions. Since there are no annotations, it covers the essential behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two clear sentences, each adding value. No redundant or missing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, no output schema), the description fully covers what an agent needs to know to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full description for the only parameter ('Session ID to verify'). The tool description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's action ('verify') and resource ('session'), and explains the output conditions. This clearly distinguishes it from sibling tools like list_sessions or log_exchange.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives or mention any prerequisites. Usage context is implied but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
get_session_history - First observed
list_sessions - First observed
log_exchange - First observed
log_message - First observed
start_session - First observed
verify_session
TDQS
Each tool has a clearly distinct role: starting/resuming sessions, logging messages individually or in batch, listing sessions, retrieving full history, and verifying integrity. No overlaps in functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., start_session, list_sessions, verify_session), making the API predictable and easy to navigate.
Six tools cover the essential operations for an audit session manager without redundancy. The count is well-scoped for the server's purpose.
The tool set covers the full lifecycle: session creation, message logging (individual and batch), session listing, history retrieval, and integrity verification. No obvious gaps given the immutability requirement for audit logs.
Maintenance
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
Bitcoin-anchored, tamper-evident audit log for AI agents — record, disclose and verify actions.
Register every AI agent, log every action, prove it. EU AI Act compliance built in.
Persistent memory for AI agents — verbatim conversations, searchable by meaning.
Cross-device AI memory with encrypted activity capture and context handoff between AI tools
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceTamper-evident cryptographic audit trail for LLM outputs. Compliance logging for AI agent decisions.-
- FlicenseNot gradedqualityCmaintenancePermanent, timestamped audit log for every AI conversation, stored locally in SQLite, owned by you.-
- AlicenseNot gradedqualityFmaintenanceProvides tamper-proof audit logging for AI agents using SHA-256 hash chains, integrity verification, and compliance reporting for the EU AI Act.1MIT

Lians Agent Memoryofficial
AlicenseAqualityAmaintenanceLocal-first bitemporal memory for AI agents with deterministic supersession, point-in-time recall, erasure proofs, and tamper-evident audit history.2910Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/SirinivasK/chron'
If you have feedback or need assistance with the MCP directory API, please join our Discord server