Chronica
Chronica is an MCP server that gives Claude Desktop persistent, structured memory across sessions, enabling context-aware continuity between conversations.
Core Capabilities:
Save Memories (
chronica_save_entry): Automatically store notes, decisions, tasks, events, and questions organized by project and thread — no explicit user prompting required.Search Memories (
chronica_search): Find stored entries by keyword, tag, kind, project, thread ID, or thread type.Timeline View (
chronica_timeline): Retrieve a chronological timeline of entries within a specified date/time range, optionally filtered by kind or thread.Opening Context (
chronica_compose_opening): Generate a session-start summary with current local time, recent project memories, and open action items/questions.Session Tick (
chronica_session_tick): Sync real-time data (current time, time since last memory, last topic, season) on every conversation turn to prevent time hallucination.Summarization (
chronica_summarize): Create daily, weekly, or decision-focused summaries for a given time range.Last Seen (
chronica_get_last_seen): Retrieve the timestamp of the last recorded interaction for a given thread type.Thread Management (
chronica_create_thread,chronica_list_threads,chronica_get_thread_info): Create, list, and inspect conversation threads to organize memories by topic or project.Project-Scoped Memory: Keeps memories isolated per project to prevent cross-context contamination.
Curation UI: A separate Streamlit dashboard lets you visualize, filter, delete, and manage stored memories with token usage stats.
Chronica 🗝️
A persistent memory layer for Claude Desktop via MCP
Claude Desktopに長期記憶を与えるMCPサーバー
"AI conversations forget everything when the session ends.
Chronica remembers — so Claude can pick up right where you left off."
What is Chronica?
Chronica is a Model Context Protocol (MCP) server that gives Claude Desktop persistent, structured memory across sessions.
When you start a new conversation, Claude calls chronica_compose_opening with the current project name — and greets you with awareness of:
✅ The current time (PC local timezone, auto-detected)
✅ Up to five recent project-scoped memory entries (title preview, kind, recency — not full body text)
✅ Open question / action items from that slice, called out for follow-up
Each user turn can also sync lightweight time/recency JSON via chronica_session_tick. Without the project argument on compose_opening, memories from other projects can mix in — the tool descriptions require always passing it (or confirming the name with list_threads first).
No more "I don't have context from previous sessions." Chronica solves this at the architecture level.
Related MCP server: Cortex
Chronicaとは?
Chronicaは、Claude Desktopに会話をまたいだ記憶を持たせるためのMCPサーバーです。
AIとの会話は、セッションが終わるとすべてリセットされます。
Chronicaを導入すると、Claudeが会話開始時に chronica_compose_opening でプロジェクト名付きの記憶サマリを読み込み、自然に続きから話せるようになります(明細は必要に応じて chronica_search などで取得)。
Features / 機能
Tool | Description |
| 会話開始時に現在時刻・指定 |
| 各ターン用の軽量JSON(現在時刻・「何日ぶり」・直近トピック)。MCPはプッシュ不可のため毎ターン呼び出し推奨 |
| 会話内容をClaudeが自動保存(メモ・決定・タスクなど5種) |
| タグ・種別・スレッドで記憶を検索 |
| 期間指定でタイムラインを取得 |
| 日次・週次・決定事項のサマリー生成 |
| 最後に会話した時刻を取得 |
| スレッド(会話トピック)を作成 |
| スレッド一覧を取得 |
| スレッドの詳細情報を取得 |
Curation UI(キュレーション画面)
Streamlit製の管理UIで、蓄積した記憶を整理できます。
📋 記憶の一覧表示(種別・タグでフィルタ)
🗑️ 不要な記憶の削除(編集不可・削除のみ)
📊 トークン使用量の可視化(TOP 10・使用率)
📸 Screenshots
Curation UI — Memory management dashboard

Claude Desktop — Automatic tool invocation

Claude Desktop — Memory saved and personalized response

Architecture / アーキテクチャ
Claude Desktop (Sonnet)
│ MCP Protocol (STDIO)
▼
Chronica MCP Server (Python)
└── src/chronica/
├── tools.py # 10 MCP tools
├── opening.py # Context generation
├── summarize.py # Summary generation
├── store.py # SQLite persistence
└── timeparse.py # Relative time parsing
│ SQLite
▼
data/chronica.sqlite3Design philosophy: Chronica is the single source of truth for time and memory structure. Claude acts purely as the interface — preventing hallucination by trusting only Chronica's structured output.
Requirements / 必要な環境
Python 3.10+
Claude Desktop (with MCP support)
Windows / macOS
Installation / インストール
クイックセットアップ(推奨)
プロジェクトルートで以下を実行すると、仮想環境・依存パッケージ・Claude Desktop設定を一括で行います。
# Windows (PowerShell)
.\setup.ps1
# Windows (cmd)
setup.bat# macOS / Linux
chmod +x setup.sh
./setup.sh完了後、Claude Desktop / Claude Code を再起動してください。
Claude Code を使っている場合
セットアップ後、Chronica フォルダを開いて会話を開始すると、.mcp.json により Chronica が自動で読み込まれます。初回は MCP サーバーの利用許可を求められる場合があります。
「MCPサーバーは追加されていません」と表示される場合
claude.ai からダウンロードした MSIX 版は、別の設定パスを使用します。.\setup.ps1 を再実行すると、両方のパスに設定が書き込まれます。
手動セットアップ
1. Clone the repository
git clone https://github.com/Nic9dev/Chronica.git
cd Chronica2. Create virtual environment / 仮想環境を作成
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS
source .venv/bin/activate3. Install dependencies / 依存パッケージをインストール
pip install -r requirements.txt4. Configure Claude Desktop / Claude Desktopに設定を追加
Claude Desktopの設定ファイル(claude_desktop_config.json)に以下を追加してください。
設定ファイルの場所 / Config file location:
Windows (MSIX版 / claude.aiからDL):
%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\claude_desktop_config.jsonWindows (従来版 / exeインストール):
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
.\setup.ps1を実行すると、MSIX版・従来版を自動検出して適切なパスに設定を書き込みます。
{
"mcpServers": {
"chronica": {
"command": "C:/path/to/Chronica/.venv/Scripts/python.exe",
"args": ["C:/path/to/Chronica/run_server.py"],
"env": {
"PYTHONPATH": "C:/path/to/Chronica/src"
}
}
}
}⚠️
C:/path/to/Chronicaの部分はご自身の実際のパスに書き換えてください。
⚠️ Windowsでは/を使ってください(\は不可)。
5. Restart Claude Desktop / Claude Desktopを再起動
設定後、Claude Desktopを再起動してください。
新しい会話を開始し、Claudeが自動で記憶を読み込むことを確認できます。
Usage / 使い方
初回起動後
新しい会話を始めると、Claudeが chronica_compose_opening を呼び出してコンテキストを読み込みます。呼び出し時は project に現在のプロジェクト名を渡すのが前提です(不明なら chronica_list_threads 等で確認)。状況確認・記憶確認の依頼では、他ツールより先に本ツールを呼ぶよう MCP 側の説明で指示しています。
コネクタのオン/オフ(会話ごとに切り替え可能)
チャットの「+」ボタンまたは「/」でメニューを開き、「コネクタ」から Chronica をオン/オフできます。
コネクタ | 記憶の保存 | 記憶の呼び出し | 時間認識 |
ON | 自動で行う | 自動で行う | あり |
OFF | 行わない | 行わない | なし |
ON: 記憶の保存・呼び出し・時間認識が自動で行われます。
OFF: その会話では Chronica のツールは利用されません。記憶を使わない一時的な相談などに。
日常の使い方
記憶の保存: 通常通り会話するだけ。Claudeが自動で重要な情報を保存します。
記憶の検索: 「先週決めたことを教えて」など自然に聞くだけでOK。
キュレーションUI: 記憶が溜まってきたら、以下で整理できます。
# Windows (PowerShell)
.\run_curation.ps1
# Windows (cmd)
run_curation.bat
# または
python -m streamlit run app_curation.py💡 Tips:会話をまたいだ引き継ぎ
会話開始:
chronica_compose_openingではproject="..."を必ず渡す(別プロジェクトの記憶が混ざるのを防ぐ)。名前が曖昧ならchronica_list_threadsで確認してから呼ぶ。詳細ログ:
compose_openingは直近5件の要約のみ。長い作業ログは続けてchronica_searchをproject(必要ならタグvolN)で呼ぶ。
新しい会話(vol.2、vol.3 など)を始めるときは、例えば次のように伝えると 前回の作業内容をChronicaから正確に引き出せます。
chronica_search を project「プロジェクト名」・タグ「vol2」で呼んで、
前回の作業内容と待ち事項を確認して。
⚠️ 「前回の作業を確認して」だけだと、ClaudeがChronicaではなく 自分の会話履歴を参照してしまうことがあります。
compose_openingのprojectと、search の project / タグを明示するのがポイントです。
Roadmap
Phase 2(近日予定)
重複記憶の自動検出(TF-IDF + コサイン類似度)
バッチ削除機能(複数選択)
全文検索
エクスポート機能(JSON / CSV)
Phase 3(将来)
クラウド同期(Supabase + E2EE)
複数デバイス対応
Phase 4(将来)
SaaS化・マルチテナント対応
License
MIT License — see LICENSE for details.
Author / 作者
Nic9 (にく9)
プログラミング未経験からAIと共に独学で複数のシステムを構築。
Chronicaは「AIと長く付き合い続けるための、個人的な基盤」として生まれました。
Contributing
Issues and PRs are welcome!
バグ報告・機能要望は Issues からどうぞ。
Available Tools
10 toolschronica_compose_openingA
【最優先ルール】
会話の冒頭で「状況確認」「記憶を確認」「現状を教えて」等の 要求があった場合、他のツールより先に本ツールを呼ぶこと。
必ず project 引数に現在のプロジェクト名を渡してから呼ぶこと。
project 引数なしで他のツールを先に呼ぶことは禁止。
会話開始時に必ず呼び出すこと。 現在時刻(年月日・時分秒)、前回の会話からの経過時間、記憶コンテキストを取得します。
【現在時刻について(重要)】
返却テキストの [現在状況] に「現在時刻: YYYY-MM-DD HH:MM:SS」が含まれる。これはPCローカル時計に基づく正確な値。
ユーザーが「今何時」「正確な時刻」「リアルタイムで時刻を」等と尋ねたときも、本ツールを呼び出してその行の時刻を答えること。
本ツールを呼ばずに「時分は取得できない」と答えてはならない。時刻が必要なら必ず呼ぶ。
【Claude向けの指示】
返された情報が絶対的な事実
自分で時間を推測しない
季節への過度な言及は避ける
「Chronicaによると」等のメタ発言は避ける
自然に「お久しぶりです」「前回は〜について話していましたね」等と声をかける
【プロジェクト引き継ぎ時の注意】
新しい会話で「前回の作業を確認して」と言われたら、 compose_opening の後に必ず chronica_search を project 指定で呼び出してプロジェクト記憶を取得すること。
compose_opening だけでは通常会話の直近トピックのみ返る。 プロジェクトの詳細な作業ログは search で取得する。
【ユーザーへの推奨呼び出し方(vol引き継ぎ等)】 「chronica_searchをproject『プロジェクト名』・タグ『volN』で呼んで、 前回の作業内容を確認して」
【重要】呼び出す際は必ず project 引数に現在の会話のプロジェクト名を渡すこと。
例: project="Chronica"、project="Lumina v3" プロジェクト名が不明な場合は chronica_list_threads で確認してから呼ぶこと。 project を渡さないと別プロジェクトの記憶が混入するため、必ず指定すること。
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | スレッドID(指定時はそのスレッドの最後の対話を取得) | |
| project | No | 現在の会話のプロジェクト名。必ず指定すること。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explains the tool returns accurate local time, memory context, and directs not to infer or use meta language. However, it does not detail default behavior when thread_id is omitted.
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 well-structured with sections and bullet points, front-loading the most critical rule. Some repetition exists (e.g., multiple mentions of required project parameter), but overall it remains organized and not excessively verbose.
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 no output schema, the description comprehensively explains return values (current time, elapsed time, memory context) and provides output format examples. It also covers edge cases like unknown project name, making it complete for its purpose.
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%, providing baseline of 3. The description adds value by emphasizing the necessity of 'project' to avoid memory contamination, providing examples, and explaining thread_id usage.
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's purpose: to be called at conversation start to retrieve current time, elapsed time, and memory context. It uses specific verbs and resources, and is distinct from siblings like chronica_search or chronica_get_last_seen.
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 specifies when to use (conversation start, time queries), when not to (do not call other tools first), and provides alternatives (chronica_search for project details). Includes recommended calling patterns and prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_create_threadC
新しいスレッドを作成します。
| Name | Required | Description | Default |
|---|---|---|---|
| thread_name | Yes | スレッド名 | |
| thread_type | No | スレッドタイプ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It only says 'create' implying mutation, but lacks details on side effects, permissions, or return value.
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 short sentence, front-loaded with the action. It is efficient, though could benefit from more structure.
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 tool has no output schema and no annotations, the description is too minimal. It does not explain what a thread is, success/failure conditions, or any related behavior.
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% and the description adds no extra meaning beyond what the schema already provides. 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 states 'Create a new thread' which clearly identifies the verb and resource. It is distinct from siblings like list_threads or get_thread_info, but does not explicitly differentiate itself.
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?
No guidance is provided on when to use this tool versus alternatives, no prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_get_last_seenB
指定されたスレッドタイプで最後に見た時刻を取得します。
| Name | Required | Description | Default |
|---|---|---|---|
| thread_type | Yes | スレッドタイプ(必須) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description alone must disclose behavior. It only states it retrieves a time; it does not mention read-only nature, permissions, or response format. Minimal disclosure.
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, front-loaded sentence with no unnecessary words. Every part is relevant.
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 tool is simple with one parameter, but the description does not explain what the tool returns (e.g., a timestamp). No output schema exists, so some return info would be helpful.
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 baseline is 3. The description does not add meaning beyond the parameter description; it essentially restates it.
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 gets the last seen time for a specified thread type, using a specific verb and resource with a qualifying scope. It distinguishes from sibling tools like chronica_save_entry or chronica_search.
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 no guidance on when to use this tool versus alternatives. It only describes what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_get_thread_infoB
指定されたスレッドの情報を取得します。
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes | スレッドID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the burden. It only states 'retrieves information' without disclosing read-only nature, auth requirements, rate limits, or side effects. Minimal behavioral context.
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?
Single sentence is concise but under-specified. It earns its place but does not fully inform. Could add more context without bloat.
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?
Simple tool with one parameter and no output schema; description is adequate for basic understanding but does not hint at return value structure, limiting completeness 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%, providing baseline. Description adds no additional meaning beyond what schema offers; both mention thread_id but no format or usage hints.
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?
Description clearly states the tool retrieves information for a specific thread, using a specific verb and resource. It is distinct from siblings like chronica_list_threads (lists threads) and chronica_create_thread (creates).
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?
No guidance on when to use this tool versus alternatives, such as when a thread ID is known vs. needing to list threads first. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_list_threadsA
スレッド一覧を取得します(スレッド名・ID・エントリ件数・日付のみ)。 エントリの本文やタグは含まれない。記憶の中身を見せる・列挙するには chronica_search を使う(引数なしで直近の記憶一覧)。
| Name | Required | Description | Default |
|---|---|---|---|
| thread_type | No | スレッドタイプでフィルタ(省略時は全て) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses that entry body and tags are excluded, adding behavioral context beyond the schema. Although no annotations exist, this transparency about what is not returned is valuable.
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 key information, no unnecessary words – concise and 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?
Given the simplicity of the tool (one parameter, no output schema), the description covers purpose, scope, and differentiation adequately. Could mention ordering or pagination but not required for basic completeness.
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 has 100% coverage with a description for the single optional parameter. The tool description does not add extra detail about the parameter beyond what schema already provides, so baseline score applies.
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?
Description clearly specifies the tool returns a list of threads with only name, ID, entry count, and date, and distinguishes itself from chronica_search which shows full memory contents.
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 states when not to use this tool (if entry body or tags are needed) and directs to chronica_search as the alternative, providing clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_save_entryA
エントリ(記憶・記録)を保存します。
【使用タイミング】
ユーザーが新しい情報を提供したとき
重要な決定事項があったとき
タスクや未決事項が発生したとき
出来事や質問があったとき
【保存すべきタイミング】
「覚えておいて」「忘れないで」「記録して」などの発言
「今日〇〇をした」「〇〇に決めた」「〇〇をやる予定」
新しい事実・決定・予定・気づき・感情が含まれる発言
迷ったら保存する。保存しすぎるほうが保存漏れより良い。
「保存しました」等の報告は不要。会話を自然に続ける。
【Claude向けの注意】
ユーザーに「保存しました」等の確認は不要
自然に会話を続ける
メタ発言(「Chronicaに保存します」等)は避ける
| Name | Required | Description | Default |
|---|---|---|---|
| entry | Yes | Entry JSON(thread, kind, text, tags は必須) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses behavioral traits: no confirmation to user, avoid meta-comments, continue naturally. However, it does not describe side effects or idempotency, and it omits explanation of the nested entry structure beyond what schema provides.
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 structured with sections and bullets, front-loading the purpose. It is somewhat lengthy but each part adds value. Minor redundancy in bullet points could be tightened, but overall well-organized.
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 no output schema and a single nested parameter, the description covers usage well but lacks return value behavior and details on entry structure. It is adequate but could be more complete, especially for a potentially complex 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 coverage is 100% (the parameter description lists required fields). The tool description does not add extra meaning beyond the schema, so baseline 3 applies.
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 that the tool saves an entry (memory/record) with the verb '保存します'. It distinguishes itself from siblings like chronica_create_thread and chronica_search, which have different purposes.
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 explicit timing for use: when user gives new info, important decisions, tasks, etc. It lists example phrases that trigger saving and advises to err on the side of saving too much. While it doesn't mention when not to use or alternatives, the guidance is comprehensive and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_searchA
保存されたエントリを検索します。本文・タグ・種別を含むエントリ一覧を返します。
【記憶の閲覧・一覧(save と対になる操作)】
「記憶を見せて」「保存したものを一覧」「Chronicaに何が入ってる?」「最近の記録」では、 フィルタなしで呼び出す(引数は空オブジェクト {} または limit のみ)。 全スレッド横断で、保存日時の新しい順に最大100件が返る。
chronica_list_threads はスレッド名・件数・ID のみ。本文は含まれない。 本文を一覧・紹介するには必ず本ツール(search)を使う。特定スレッドだけなら thread_id を指定。
【使用タイミング】
ユーザーが「最近の〜を振り返りたい」と言ったとき
特定のタグやトピックの記録を探すとき
【能動的な記憶参照】
ユーザーの発言に既存の記憶と関連しそうなテーマが出てきたら、 会話を止めずに裏側でsearchを呼ぶこと。
関連記憶が見つかった場合、「Chronicaによると〜」等のメタ発言は不要。 その記憶を自然に会話に織り込む。
例:ユーザーが仕事の悩みを話す → 過去の関連決定事項を検索 → 「以前〇〇と決めていましたよね」と自然につなげる。
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | スレッドID(指定時はthread_typeより優先) | |
| thread_type | No | スレッドタイプ | |
| kind | No | エントリ種別 | |
| tags | No | タグリスト(いずれか一致) | |
| project | No | プロジェクト名 | |
| limit | No | 最大件数(省略時100)。一覧表示時も指定可。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses default limit (100), sorting (newest first), and that calling with empty object or limit only gets recent entries. However, it does not mention error conditions, required permissions, or behavior when no results are found.
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 well-structured with sections and uses bullet points for key scenarios. However, it is somewhat verbose, especially the proactive usage section which could be more concise. Still, every sentence contributes to clarity.
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?
No output schema exists, so the description should explain return value structure. It mentions returned fields (body, tags, type) but not their format or any pagination info. Otherwise, it covers usage scenarios and behavior adequately.
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 description adds context: explains that thread_id overrides thread_type, that limit defaults to 100, and that for unfiltered listing the argument can be empty object or just limit. This adds meaning beyond the schema definitions.
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 searches saved entries and returns a list including body, tags, and type. It distinguishes itself from chronica_list_threads by noting that list_threads only returns thread names, counts, and IDs, while this tool returns full entry details.
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 provides when to use (e.g., when user wants to look back at recent entries, search by tag/topic) and when not to use (for thread name/ID only, use list_threads). It also gives proactive usage guidance for background searches without metadiscourse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_session_tickA
【毎ターン・返答前に呼ぶ】MCPはサーバーからClaudeへ能動プッシュできないため、 ユーザーからメッセージを受け取ったら、返答を書く直前に必ず本ツールを呼ぶこと。 「常に許可」推奨。負荷は極小(短いJSONのみ)。
返却JSONの意味:
now_local: 現在のローカル日時(時分秒まで正確)
since_last_memory: 最後の記憶からの経過(「3日前」「数分前」「初回」など)→「何日ぶり」の根拠
last_topic_preview: 直近記憶の冒頭
season / time_of_day: 季節・時間帯
chronica_compose_opening は会話開始の挨拶用。2通目以降は本ツールで時刻・経過を毎回同期する。
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | No | スレッドID(省略時は全体の直近記憶から経過を算出) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description details what the tool returns (now_local, since_last_memory, etc.) and implies it is a read-only operation with minimal side effects. It does not explicitly state non-destructiveness but the context strongly suggests it is safe.
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 concise and well-structured, with clear sections for usage instructions and return value meanings. It could be slightly more structured (e.g., using headings), but it efficiently conveys all necessary information without redundancy.
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 tool's simplicity (one optional parameter, no output schema), the description is complete. It explains the return JSON fields, usage pattern, and relationship to sibling tools, providing all information needed for correct invocation.
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% for the single optional parameter. The description adds meaningful context beyond the schema: 'thread_id' is optional and when omitted, the calculation uses overall recent memory. This clarifies behavior that the schema alone does not convey.
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 purpose: to be called every turn before replying to synchronize time and elapsed since last memory. It clearly distinguishes itself from the sibling tool chronica_compose_opening, which is for opening greetings.
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?
Provides explicit instructions on when to call ('every turn before replying') and when not to use it (first message should use chronica_compose_opening instead). Also mentions 'always allow' recommendation and minimal load, guiding agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_summarizeC
サマリーパックを生成します(Summary Pack v0.1.2)。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | モード | |
| range_start | Yes | 範囲開始時刻(ISO文字列、JST) | |
| range_end | Yes | 範囲終了時刻(ISO文字列、JST) | |
| thread_type | Yes | スレッドタイプ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits such as side effects, permissions, or data handling. It is insufficient for understanding the tool's operational characteristics.
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, making it concise, but it is too brief to convey necessary information. It could be restructured to include more context without losing 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 the tool has 4 required parameters, no output schema, and no annotations, the description is insufficient. It does not explain how the parameters affect the output or provide examples, leaving the agent underinformed.
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?
All parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description adds no additional meaning beyond the schema, but the schema descriptions are adequate for basic understanding.
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 ('generate a summary pack') and includes a version number, differentiating it from sibling tools like chronica_create_thread or chronica_list_threads. However, it does not elaborate on what a 'summary pack' entails.
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?
No guidance is provided on when to use this tool versus alternatives, such as when to use different modes or the scope of the summary. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chronica_timelineA
指定期間のタイムラインを取得します。
【使用タイミング】
「今日の振り返り」「この1週間の出来事をまとめて」と依頼されたとき
| Name | Required | Description | Default |
|---|---|---|---|
| start_time | No | 開始時刻(ISO文字列、JST) | |
| end_time | No | 終了時刻(ISO文字列、JST) | |
| thread_id | No | スレッドID(指定時はthread_typeより優先) | |
| thread_type | No | スレッドタイプ | |
| kind | No | エントリ種別 | |
| limit | No | 最大件数 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Retrieves the timeline' without mentioning whether it is read-only, destructive, or has any side effects. It lacks details on pagination, rate limits, or authorization requirements, leaving significant gaps for an agent.
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 concise with a single sentence and a clear usage timing section. It is front-loaded with the main purpose and immediately useful usage examples. Slightly more efficient by avoiding redundancy would push to 5.
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 tool has 6 parameters, no output schema, and no annotations. The description does not explain what the timeline response looks like, how empty results are handled, or any constraints on parameter combinations. For a tool with moderate complexity, this is insufficient.
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 input schema already documents all parameters. The description does not add extra semantic value beyond what the schema provides. 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 verb '取得' (retrieve) and the resource 'タイムライン' (timeline) for a specified period. It distinguishes itself from sibling tools like chronica_search or chronica_save_entry by focusing on timeline retrieval by date range.
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 explicit usage examples such as '今日の振り返り' (today's recap) and 'この1週間の出来事をまとめて' (summarize this week's events), telling the agent when to invoke this tool. It does not mention when not to use, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: opening, session tick, thread management, saving and searching memories, summarizing, and timeline viewing. There is no overlap or ambiguity.
All tools are prefixed with 'chronica_' and most follow a verb_noun pattern (e.g., compose_opening, create_thread, save_entry, list_threads). A few are single verbs (search, summarize, timeline) which is a minor inconsistency, but overall the naming is clear and predictable.
With 10 tools, the server is well-scoped for its purpose of providing a memory/context system. It covers essential operations without being overwhelming or sparse.
The tool set provides core memory operations: save, search, list, thread info, timeline, and summaries. The only notable gap is the lack of update or delete operations for entries or threads, which could be useful but is not critical for an append-only memory system.
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
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Persistent memory for AI agents across Claude, ChatGPT and any MCP client.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Private persistent memory for Claude, ChatGPT & Gemini via MCP - semantic search, zero-code setup.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP Memory Server for Claude Code that provides persistent context across sessions using semantic search (RAG).Apache 2.0
- AlicenseNot gradedqualityDmaintenancePersistent memory MCP server for Claude Code that captures and recalls project context across sessions, eliminating the need to re-explain architecture and decisions daily.1371MIT
- AlicenseNot gradedqualityFmaintenanceAn MCP server that gives Claude Desktop persistent memory, self-awareness, epistemic hygiene, and genuine agency across conversations with a typed memory system, embedding-based semantic search, a 3-judge memory jury, and a real-time dashboard.7MIT
- AlicenseNot gradedqualityDmaintenanceA simple memory storage server for Claude using the Model Context Protocol (MCP), enabling Claude to store and retrieve text memories across conversations.18MIT
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/Nic9dev/Chronica'
If you have feedback or need assistance with the MCP directory API, please join our Discord server