Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CSM_HOMENo環境変数 CSM_HOME でデータフォルダの場所を変更できます(既定: Claude Code は ~/.claude/session-manager-mcp/、Codex は ~/.codex/session-manager/)。
CSM_AGENTNo使用するエージェントを指定します(例: claude)。Claude Code に手動で MCP サーバーを登録する際に `-e CSM_AGENT=claude` として設定します。

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_sessionsA

会話の一覧と状態を返す。scope="managed"(既定)は監視役が管理している会話(保留と終わったものは状態を読みに行かない)と、TODO(todos。条件がそろっているかを due に。true / false / null=分からない。済んだものは includeArchived のときだけ)と、引き継ぎメモ handoff.md の先頭(handoff)。scope="all" はこの PC の会話を新しい順に。status は notLoaded(読み込まれていない・一覧に無い)/ idle(止まっている)/ active(動いている。activeFlags に waitingOnApproval・waitingOnUserInput)/ systemError。監視役でない会話から呼んでもよい。

read_sessionA

会話の最近のやりとりを読む(依頼の文・AI の返事・状態・エラー・利用者への質問)。落ちたのか、判断待ちなのか、終わったのかを見分けるのに使う。長い文は末尾を残して切る。Codex はターンごと、Claude Code は最近の出力(claude logs)。利用制限で止まったらしいときは usageLimit に当たった行を返す(Codex はターンの error を見る)。

start_sessionA

新しい作業の会話を起こして、最初の依頼を送る(名前・作業フォルダ・モデル・エフォート)。モデルとエフォートは、仕事の種類に合う profile(get_usage の profiles)で選ぶのが基本。model・effort を書くと profile より優先する。会話はこの会話とは別に動き、この会話が終わっても動き続ける。空きメモリ・CPU・利用枠(pauseAtPct があるとき)に余裕が無いときは起こさずに理由を返す(force=true で無視)。名前は管理中の会話と重ねない。Claude Code の via="app"(Claude のデスクトップアプリでの既定)では、この道具は起こさずに、デスクトップアプリの mcp__ccd_session__start_session に渡す値(appStart)と、起こした後に update_session に渡す値(record)を返す(startInApp=true)。

send_messageA

会話へ連絡・依頼を送る。mode="auto"(既定): 動いている会話には今のターンの後に回す(queue)、止まっている会話は続きから新しいターンを始める。mode="steer" は動いているターンに割り込んで足す(Codex だけ)。profile・model・effort を付けると、この依頼からモデルとエフォートを変える(以後の続きにも効く。Codex は止まっている会話にだけ。Claude Code は動いていれば、預かって届けるときから)。

stop_sessionA

会話の動いているターンを止める。会話そのものは残り、send_message で続きを頼める。markAs で管理上の状態を記録する(既定 paused=手で止めた。利用枠で止めるときは paused_usage にすると、枠が戻ったときに wait_events が usageRecovered を返す)。

set_session_nameC

会話の名前を変える(Claude Code は外から変えられないため、監視役の記録だけ変える)。

get_usageA

利用枠(窓ごとの使用率とリセットの時刻)・空きメモリ・動いている会話の数と、いま新しく動かしてよいか(canStartNew と理由)・見回りで待つ最長の分(watchIntervalMin)を返す。pauseAtPct が null なら利用枠では止めない(読めなくてもよい)。profiles は仕事の種類ごとのおすすめのモデルとエフォート(null は、start_session ではそれぞれの既定、send_message では今の値のまま)。version はこの道具の版: running(動いている版)・installed(ディスクに入っている版。プラグインとして入れていなければ null)・autoUpdate(自動更新)・latest(自動更新が切れているとき(と Claude のデスクトップアプリ)だけ、GitHub の最新の版。1日1回まで読む)・reloadNeeded(新しい版が入っているのに、この会話は古い版のまま)・updateAvailable(新しい版が出ているのに入っていない)・notified(この会話で同じ版の組み合わせをすでに返した。false で返すときに記録するので、reloadNeeded か updateAvailable が true で notified が false なら、そのとき利用者に伝える)。

update_sessionA

監視役の記録(state.json)を書き換える。管理に加える(デスクトップアプリの会話は start_session が返した record の値で)・状態(running / waiting_user / done / pending=保留 / paused=手で止めた / paused_usage=利用枠で止めた / failed)・一言のメモ・触る場所・つなぐ TODO。done にすると、つないだ TODO も済みになる(todosDone)。会話そのものには何もしない。

todoA

TODO(あとでやること)を書く。action="add": 足す(text と when。利用者の言葉を、あとで依頼の文にできる一言に)。"update": 直す(id と変える欄)。"done": 済ませる(id)。"remove": 消す(間違えて足したとき)。一覧は list_sessions の todos。when.type: anytime(いつでも)/ usage(利用枠が戻ったら。at に戻る時刻)/ pr(PR が merged になったら。pr と、cwd か repo)/ version(この道具が version 以上の版で動いたら=読み込んだら。ディスクに入っただけでは数えない。省くと足したときと違う版で動いたら)/ restart(足したときの session-manager が終わり、そのあとに起動し直したら。足した会話を開いたまま新しい会話を始めただけでは数えない)/ at(at の日時になったら)/ room(PC に余裕ができたら。断られた start_session が自分で足す)。条件がそろうと wait_events が todoDue(room は roomAvailable)で返す。auto=true は、そろったら聞かずに進める(利用者がすでに頼んだ仕事の続き)。

wait_eventsA

見回り。管理中の会話の状態の変化・作業の会話からの報告・承認や入力の待ち・空きメモリ不足・利用枠の超過(pauseAtPct があるとき)と回復・資源待ちの仕事(room の TODO)を起こせる余裕(roomAvailable)・条件がそろった TODO(todoDue。1件につき1回。始める・済む・条件を直すまで、1時間ごとに repeat=true でまた返す)を、起きるまで待って返す(報告は書かれたらすぐ)。wait=false なら待たずに、いま分かる出来事だけを返す(Claude のデスクトップアプリの監視役が、起きるたびに1回呼ぶ)。何も起きなければ最長 intervalMin 分(省略時は設定の watchIntervalMin。設定より長くはできない)で timedOut を返す。待つ間はモデルを使わない。動いている会話・判断待ちの会話(stopWhenStuckMin があるとき)・枠で止めた会話・資源待ちの仕事・未読の報告がどれも無ければすぐ idle=true を返す(見回りを止めてよい合図)。進められる仕事が無い(どの会話も利用者の判断・承認・入力か、メモリ・CPU の空きを待っている)まま設定の stopWhenStuckMin 分(既定 120)続くと、stuck=true と待っているもの(waiting)を返す(見回りを止める合図。呼び出しをまたいで数え、状態の変化・報告・send_message・start_session・update_session で数え直す)。同時に呼べるのは1つだけ(新しい呼び出しが前のものを打ち切る)。

read_reportsB

作業の会話からの報告(report)を読む。既定は未読だけ(読んだ印を進める)。all=true で全部を新しい順に limit 件。

reportA

【作業の会話が使う】監視役へ報告を書く。kind: progress(区切りの報告)/ question(利用者の判断が要る。質問・選択肢・おすすめを書いて待つ)/ done(終わった。結果と残り)/ blocked(進められない)。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have clearly distinct roles: start/send/stop/read/list sessions, report/read_reports, todo, wait_events, and get_usage are easy to separate. There is some overlap between set_session_name and update_session because both modify supervisor-side metadata, and stop_session's markAs state can be confused with update_session's state field, but descriptions mostly clarify these boundaries.

Naming Consistency4/5

All tool names use consistent snake_case, which is predictable and readable. Most follow a verb_noun pattern (list_sessions, read_session, start_session, send_message), but standalone names like report and todo are minor deviations from the pattern.

Tool Count5/5

The 12-tool surface is well scoped for a session supervisor managing conversations, reports, TODOs, usage, and event waiting. Each tool appears to earn its place without obvious redundancy.

Completeness4/5

The tool set covers the main lifecycle: start, list, read, message, stop, update, report, todo management, usage checks, and event waiting. Minor gaps remain around explicitly deleting or archiving sessions and separating some metadata operations, but agents can work around these through existing tools.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive