Skip to content

MCP サーバー

Chronicle には Model Context Protocol のサーバーが付いていて、MCP クライアントなら何でも 過去のセッションとナレッジを検索できます。Claude Code、Codex、Copilot、Bob、Claude Desktop、Cursor、Windsurf、Gemini CLI、 そのほか MCP に対応したものすべてです。たとえば 「このエラー、前にも出た?」 「なぜ冪等性を Postgres でやることにしたんだっけ?」 「billing-api はどうデプロイする?」 のように尋ねられます。

サーバーは chronicle mcp です。stdio で通信し、クライアントがローカルのプロセスとして起動するので、ネットワークで待ち受けるものは ありません。どのツールもローカルの保管庫を読むだけです。

ツール

ツール 返すもの 引数
search_knowledge 語句に一致するナレッジ(修正、落とし穴、決定、事実、コマンド、好み)。まず最初に使うツールです。 query, project, kind, limit
search_sessions トランスクリプトか要約が一致するセッションと、その抜粋 query, project, limit
get_session 1 つのセッション:要約、結果、ナレッジ、変更したファイル、プロンプト session_id(または一意な先頭部分)
get_transcript セッションの会話の一部。ツール呼び出しも含められます session_id, offset, limit, include_tools
project_knowledge プロジェクトのナレッジベース:構成、実行・テスト・デプロイの方法、落とし穴、決定、未解決の事項。project="global" で全プロジェクト共通のプレイブック。 project
glossary 用語の定義、別名、使われ方と出どころ、またはプロジェクトの用語集全体 term, project
recent_sessions 最近のセッション(新しい順) project, days, limit

project にはパスか名前(billing-api)を渡します。省略すると、project_knowledge と glossary はクライアントがサーバーを 起動したディレクトリのプロジェクトを使います。コーディングエージェントはプロジェクトの中で起動しますが、Claude Desktop のような チャットアプリはそうではないので、質問の中でプロジェクト名を挙げてください。

すべてのツールは読み取り専用(readOnlyHint)と宣言しているので、このヒントに対応したクライアントは確認なしで実行できます。

クライアントを接続する

Chronicle が記録するエージェントは、接続したときにサーバーが登録されます(ソースを参照):

エージェント 登録先
Claude Code ユーザースコープ、claude mcp add で(chronicle install または chronicle connect claude)
Codex ~/.codex/config.toml、codex mcp add で(chronicle connect codex)
GitHub Copilot VS Code の User/mcp.json と ~/.copilot/mcp-config.json(chronicle connect copilot)
IBM Bob ~/.bob/settings/mcp_settings.json(chronicle connect bob)

ほかのクライアントにはサーバーだけを追加します。Chronicle はそのセッションを記録しません。Settings › MCP › Other MCP clients から、またはコマンドラインで追加します:

クライアント コマンド 編集する設定ファイル
Claude Desktop chronicle connect claude-desktop ~/Library/Application Support/Claude/claude_desktop_config.json
Cursor chronicle connect cursor ~/.cursor/mcp.json
Windsurf chronicle connect windsurf ~/.codeium/windsurf/mcp_config.json
Gemini CLI chronicle connect gemini ~/.gemini/settings.json

Chronicle は chronicle の項目を追加するだけで、ファイルのほかの部分には触れません。事前に ~/.claude-chronicle/backups/ に バックアップし、プレーンな JSON でないファイル(コメント入りなど)は編集しません。サーバーを読み込むにはクライアントを再起動して ください。chronicle disconnect <client> で項目を削除でき、chronicle uninstall でも削除されます。どのクライアントに登録済みかは chronicle sources で確認できます。

そのほかのクライアント

ダッシュボードの Settings › MCP では、サーバーを使えるエージェント、提供するツール、そしてほとんどのクライアント(mcpServers の項目)・ VS Code・Codex・Claude Code 向けのコピーできる設定を、インストールに合ったパスで表示します。ターミナルでは次のコマンドで項目を出力します:

chronicle mcp --print-config
{
  "mcpServers": {
    "chronicle": {
      "command": "/Users/you/.local/bin/chronicle",
      "args": ["mcp"]
    }
  }
}

chronicle の項目をクライアントの MCP 設定に貼り付けます。多くのクライアントはこのような mcpServers を使いますが、VS Code は servers を使い、ほかの名前のクライアントもあるので、キーはクライアントのドキュメントで確認してください。次の点に注意してください:

  • フルパスを使う。 デスクトップアプリはシェルの PATH を引き継ぎません。コマンドラインでインストールした場合は ~/.local/bin/chronicle、デスクトップアプリだけの場合は ~/.claude-chronicle/bin/chronicle(アプリに同梱された Chronicle を 実行する小さなスクリプト)です。
  • ホームを変えている場合。 CHRONICLE_HOME を設定しているなら、それも渡します:"env": {"CHRONICLE_HOME": "/path/to/home"}。
  • トランスポート。 対応しているのは stdio だけです。URL でしか接続できないクライアントは、まだ使えません。

手で試す

MCP Inspector でツールの一覧を見て、呼び出せます:

npx @modelcontextprotocol/inspector ~/.local/bin/chronicle mcp

または JSON-RPC をそのまま送ります:

printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_knowledge","arguments":{"query":"webhook"}}}' \
  | chronicle mcp

プライバシー

サーバーはあなたの Mac で動き、Chronicle 自身のデータベースだけを読みます。ただし、ツールが返した内容はクライアントの会話の一部になり、 その会話はクライアントのモデルに送られます。Claude Desktop なら Claude、Cursor、Windsurf、Gemini CLI なら選んだモデルです。 ツールの結果には分析用の要約と同じ伏せ字処理がかかります(API キー、トークン、URL 内のパスワードなど)。それ以外のトランスクリプトの 内容はクライアントのモデルに届きうるので、セッションを見せてもよいと思えるモデル提供元のクライアントにだけサーバーを追加してください。 データとプライバシーも参照してください。

トラブルシューティング

  • ツールが表示されない。 接続したあとクライアントを再起動してください。設定に書かれたパスが存在するかも確認します: ls -l ~/.local/bin/chronicle。
  • どこでも「No knowledge found」になる。 セッションはバックグラウンドで分析されます。chronicle status で待ち行列を確認できます。
  • 別のプロジェクトの答えが返ってくる。 project を明示するか、プロジェクト名を挙げて尋ねてください。

そのほかはトラブルシューティングを参照してください。