Cairn について
Cairnは、Claude Codeユーザー向けの作業記録ツールです。コーディングセッション、ファイル操作、タスク、プロジェクトメモをアカウントに集約し、日次・週次の振り返りを提供します。ローカルのMCPサーバーとフックが活動をCairn APIへ送信します。
主な機能
- 01コーディングセッションとファイル編集の記録
- 02タスクとプロジェクトメモの管理
- 03日次・週次の振り返り
- 04アカウントごとのデータ分離
活用シーン
- 01最近のコーディング活動の確認
- 02Claude Codeによるファイル編集の記録
- 03保留中から完了までのタスク管理
MCP 対応
agent/フォルダーには、ClaudeにCairnツールを提供するMCPサーバーと、セッションやファイル編集を記録する2つのClaude Codeフックがあります。アカウントトークンを使い、HTTPS経由でCairn APIに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx cairn-mcpCAIRN_TOKENシークレットYour Cairn API token, copied from the web app account menu. If unset, the server reads it from ~/.cairn_token.CAIRN_API_URLBase URL of the Cairn API. Defaults to production.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cairn
作業の記録を残すトラッカーです。コーディングセッションや、変更したファイル、保留中から完了へ移動するタスク、プロジェクトのメモを記録し、日次・週次のまとめとともに一か所に保管します。名前は、道しるべとして積まれる石の山に由来します。
Cairn は、Neon Postgres データベースを使用するマルチテナントの Web アプリとして Vercel 上で動作します。各アカウントは登録してログインし、自分のデータだけを閲覧できます。
構成
サーバー全体は、Python 標準ライブラリと 1 つの依存関係(psycopg)で構成されています。フレームワークは使用していません。
api/index.py— Vercel のサーバーレスエントリーポイントです。Vercel の Python ランタイムはこれをすべてのリクエストを受け付けるエンドポイントとして扱うため、すべてのリクエストがここに届きます。lib/handler.py— ルーティングを担当します。同じBaseHTTPRequestHandlerが、Vercel の関数、ローカルの開発サーバー、テストという 3 つの方法で動作します。lib/data.py— すべての SQL ステートメントを記述します。それぞれがuser_idでスコープされています。lib/db.py— Neon への接続(プール済みエンドポイント)と、小規模なクエリヘルパーを担当します。lib/auth.py— PBKDF2 によるパスワードハッシュ化、セッション、トークン解決を担当します。lib/limits.py— 登録・ログインのレート制限と、アカウントごとのクォータ上限を管理します。どちらも Postgres を使用します。lib/assets.py— シングルページアプリとファビコンを Base64 として埋め込み、関数のバンドルに含めます。build_assets.pyによって生成されます。static/を編集したら、再実行してください。
ローカル開発
接続先となる Postgres が必要です。使い捨ての Docker コンテナで動作します。
docker run -d --name cairn_pg -e POSTGRES_PASSWORD=pw -e POSTGRES_DB=cairn -p 5432:5432 postgres:16-alpine
python3 -m venv .venv && .venv/bin/pip install 'psycopg[binary]'
export DATABASE_URL="postgres://postgres:[email protected]:5432/cairn"
.venv/bin/python dev.py --init # create the schema, then serve on :8765
テストも同じデータベースに対して実行します。
.venv/bin/python tests/smoke.py # core CRUD + isolation
.venv/bin/python tests/test_limits.py # rate limiting + quotas
.venv/bin/python tests/test_sp3.py # file activity + filtered lists
デプロイ
main にプッシュすると、Vercel GitHub 連携を通じて本番環境にデプロイされます。DATABASE_URL とその他の Neon 変数は Vercel ↔ Neon 連携から取得されます。アプリはプール済みの接続文字列を読み込みます。スキーマの変更は、プールされていない直接 URL を使って initdb.py で適用します。
エージェント側
agent/ フォルダーには、MCP サーバーと、お使いのマシン上で実行する 2 つの Claude Code フックがあります。アカウントのトークンを使って HTTPS 経由でこの API と通信するため、Claude Code が行ったことはすべて Cairn アカウントに記録されます。サーバーは Claude に一連の cairn ツールを提供し、フックはセッションとファイル編集を自動で記録します。
Claude Code では、プラグインを使うのが最も手早いインストール方法です。このリポジトリはプラグインマーケットプレイス(.claude-plugin/marketplace.json)も兼ねています。
/plugin marketplace add https://github.com/cybort360/cairn
/plugin install cairn@cairn
これにより MCP サーバーと 2 つのフックが設定されます。あとはトークンを ~/.cairn_token に保存するだけです(PATH に uv が必要です)。手動でインストールする方法(clone、venv、claude mcp add)は agent/README.md に記載されています。Web アプリのデプロイでは agent/ は無視されます。これはクライアント側でのみ使用されます。
設計メモ
Cairn を構成する各サブプロジェクトの仕様は、docs/superpowers/specs/ にあります。クラウドのコア、認証の強化、ローカルエージェントへの移行が対象です。コードだけでなく、設計判断の背景も知りたい場合は参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。