Skip to main content
Glama

AIツールはメッセージを送信した時刻を表示しますが、ChronはAIが応答した時刻も記録し、使用するすべてのツール間でのやり取りを永続的かつクエリ可能な記録として保持します。

Claude Desktop、Claude Code、Cursor、Windsurf、およびMCP互換のあらゆるAIツールで動作します。


なぜ必要なのか

AIツールはデフォルトでは監査証跡を作成しません。そのため、以下の質問に答えることができません:

  • AIは何を、正確にいつ言ったのか?

  • AIの応答にどれくらいの時間がかかったのか?

  • この出力を生成した一連の会話全体はどういうものだったか?

  • 先週、このコードベースについてClaudeに何を聞いたか?

Chronはこれを解決します。すべてのやり取りは、正確なローカル日時(タイムゾーンオフセットを含む)とともに、あなたが所有するSQLiteファイルに記録されます。クラウドも、ベンダーロックインもなく、データがマシンから外部へ流出することもありません。


Related MCP server: chron

インストール

AIツールの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 DBに保存されます。


ツール別の設定

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 が同梱されています。これは、AIにMCPツールの使用方法を自動的に指示するためのプレーンテキストの指示ファイルです。AIツールに一度読み込ませれば、その後AIは以下のことを行います:

  1. すべての会話の開始時に、名前付きセッションを作成または再開する

  2. 応答を開始する前にメッセージを記録する(実際のユーザータイムスタンプをキャプチャ)

  3. 作成後に応答を記録する(実際のAIのタイムスタンプをキャプチャ)

  4. すべての応答の先頭に [user: YYYY-MM-DD HH:MM:SS ±HH:MM | assistant: YYYY-MM-DD HH:MM:SS ±HH:MM] を表示する

  5. 以前のセッション履歴を取得し、会話をまたいでもコンテキストが失われないようにする


MCPツール

ツール

説明

start_session

名前付き監査セッションを作成または再開する

log_message

現在のローカル日時で単一のメッセージを記録する

log_exchange

ユーザー/アシスタントのペアをアトミックに記録する(バッチインポート用)

list_sessions

最近アクティブになった順にすべてのセッションを一覧表示する

get_session_history

セッションの完全なタイムスタンプ付きログを取得する


設定

環境変数

デフォルト

説明

CHRON_DB_PATH

~/.chron/chron.db

SQLiteデータベースファイルへのパス

CHRON_TRANSPORT

stdio

HTTP+SSEモードを有効にするには http に設定

CHRON_API_KEY

(なし)

HTTPモード用のBearerトークン

PORT

3001

HTTPモード用のポート


HTTP+SSEモード(チーム / セルフホスト)

チーム利用やリモート利用の場合は、ChronをHTTPサーバーとして実行します:

CHRON_TRANSPORT=http CHRON_API_KEY=your-key PORT=3001 npx chron-mcp

MCP設定でそのURLを指定します:

{
  "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. All rights reserved.

ソースコードは透明性を確保するために公開されています。明示的な書面による許可なしに、複製、フォーク、改変、再配布することは許可されていません。完全な条件については LICENSE を参照してください。

Available Tools

6 tools
get_session_historyA

Retrieve the full timestamped audit log for a session, oldest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
limitNoReturn only the most recent N messages

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoReturn only the most recent N sessions

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID returned by start_session
user_contentYesThe exact user message
assistant_contentYesThe exact assistant response

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID returned by start_session
roleYes
contentYesFull message text

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDescriptive session title, e.g. "Contract review — 2026-05-08"
ai_toolNoAI tool name: "claude", "cursor", "windsurf", etc.

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession ID to verify

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 6 tool updatesv0.1.0
    • First observedget_session_history
    • First observedlist_sessions
    • First observedlog_exchange
    • First observedlog_message
    • First observedstart_session
    • First observedverify_session

TDQS

A4.2/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

Six tools cover the essential operations for an audit session manager without redundancy. The count is well-scoped for the server's purpose.

Completeness5/5

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

ActivityActive
ResponsivenessNo issues

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

Related MCP Servers

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/SirinivasK/chron'

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