Skip to main content
Glama
SEARO1
by SEARO1

agent-cross-session-mcp

TL;DR — 一個 MCP server,令 DSH 唔同 session 嘅 agent 知道彼此做緊咩:邊個 session 喺邊個 workspace、跑緊乜 tool、最後一句 human 問咩、最後答咗啲乜,仲可以互相留低 note。

It reads DSH's own session logs (~/.dsh/sessions/**/session.v2.jsonl.zstd) and never writes to another session. A small append-only board carries voluntary announcements.

Why this exists

DSH sessions are isolated: a session sees its own conversation and nothing about what the other windows on the same machine are doing. Two agents can end up editing the same repo, re-doing the same research, or contradicting a decision the other one just made.

This server closes that gap with two read paths and one write path:

Path

Source

Freshness

Live activity

the caller's and peers' session logs, which DSH appends per batch of events

seconds

Announcements

<DSH_HOME>/cross-session/board.jsonl, written by announce

immediate

Related MCP server: claude-intercom-mcp

Tools

Tool

Answers

peers

Who else is running, in which workspace, doing what — tool in flight, last human request, last reply.

session_detail

The recent timeline of one session: human messages, agent replies, tool calls in order.

overlaps

Which files two sessions both touched, which share a workspace, and which ran git in the same repo.

announce

Post a note for the other sessions (what you own, what you decided).

board

Read the notes other sessions posted, newest first.

whoami

Which session am I, which workspace, what am I doing.

Example peers output:

DSH sessions — 2 shown of 12 on disk · 1 running a tool · active within 30m · now 09-12 01:56

1) 74f51504
   workspace : C:\Users\cheun\OneDrive\Desktop\agent_cross-session_mcp
   status    : busy — running run_code (last event 1s ago)
   said      : (turn in progress)

2) fa12628a
   workspace : C:\Users\cheun\.dsh
   status    : idle (last event 13m ago)
   said      : 搞好晒,寫入咗 my_agent_setting repo(3 個檔改動,未 commit)…

How it works

Session logs are a concatenated Zstandard container. Node's zstdDecompressSync decodes only the first frame, so lib/session-logs.mjs locates frames structurally first (frame header, then block headers — a compressed block stores its own compressed length, so no decompression is needed to find the next frame), then decodes one frame at a time. A write in progress shows up as a torn final frame and is skipped until the next poll.

Reads are windowed. Only the head frame (session header, title) and the newest frames (current turn) are decoded, so polling every session stays cheap.

The calling session is recovered, not assumed. DSH does not forward a session identity to MCP servers — a tools/call request carries only the tool name and arguments. But DSH appends the caller's own record to its log before the call is served: tool/call for a tool the model calls directly, tool/code-dispatch-start for the same tool called from inside run_code. So identifyCaller() reads the logs written in the last two minutes, matches either record, and reports that session as ← this session. When identification fails, announce still stores the note and says it was anonymous.

Nothing here needs DSH to change. The server is a plain stdio MCP process; DSH mounts it through dsh-mcp-client like any other MCP server.

Collision prevention

Two sessions in one repo is the case this server exists for, so the peer view carries the evidence a collision would leave:

  • @@BT@@peers@@BT@@ adds a @@BT@@touched@@BT@@ line per session: the newest files that session read or wrote (@@BT@@(w)@@BT@@ marks a write) plus the git subcommands it ran.

  • @@BT@@overlaps@@BT@@ compares every recently active session and reports, in one report: sessions sharing a workspace, how many files each wrote, git races (@@BT@@add -A@@BT@@, @@BT@@commit@@BT@@, @@BT@@checkout@@BT@@ in the same repo), and each file more than one session touched — @@BT@@⚠ CONFLICT@@BT@@ when both wrote it.

  • Status lines separate real work from log writes: a session that was only seeded or resumed reads @@BT@@idle (last work 1d2h ago · log written 27m ago (seed/resume))@@BT@@ instead of looking active.

This is advisory: nothing here blocks a write, and nothing appears unless an agent asks. For hard isolation give each session its own @@BT@@git worktree@@BT@@ (see the @@BT@@using-git-worktrees@@BT@@ skill) — the radar then covers what worktrees cannot: the same working tree reopened twice, files outside any repo, and the git commands themselves.

Install

npm install --cache .\.npm-cache           # sandboxed npm needs its cache inside the project
pwsh -File scripts/install-to-dsh.ps1 -Commit

The script copies skills/cross-session into <DSH_HOME>/skills, inserts the install/cordis-block.yml row into <DSH_HOME>/profiles/<profile>/cordis.patch.yml once (leaving a .bak beside it), and refreshes the my_agent_setting mirror. It derives every path from the repository location, so a fresh clone on another machine works unchanged; override the targets with DSH_HOME / CROSS_SESSION_MIRROR and the profile with -Profile.

Register it in DSH

Add one row to ~/.dsh/profiles/<profile>/cordis.patch.yml:

- insert:
    - id: mcp-cross-session
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: crosssession
        transport: stdio
        command: node
        args: ['C:\Users\cheun\OneDrive\Desktop\agent_cross-session_mcp\server.mjs']
        cwd: 'C:\Users\cheun\OneDrive\Desktop\agent_cross-session_mcp'

Notes:

  • serverName must match CROSS_SESSION_SERVER_NAME (default crosssession), because the tools appear to the model as mcp__crosssession__peers and caller identification matches those exact names.

  • New rows must be added with the insert: form; an - id: override for a row that does not exist yet is silently dropped.

  • The harness picks the row up on reload; a gateway restart is the reliable way.

Configuration

Variable

Default

Meaning

DSH_HOME

~/.dsh

Home whose sessions/ directory is read.

DSH_SESSIONS_DIR

<DSH_HOME>/sessions

Session store root, when it is not under the home.

CROSS_SESSION_BOARD

<DSH_HOME>/cross-session/board.jsonl

Announcement log.

CROSS_SESSION_SERVER_NAME

crosssession

MCP server name used for caller identification.

Layout

server.mjs                    stdio transport only (MCP SDK wiring)
lib/tools.mjs                 tool definitions, handlers, rendering
lib/session-logs.mjs          zstd frame scanner, windowed reader, summarizer, activity, caller lookup
lib/board.mjs                 append-only announcement log with size-capped compaction
skills/cross-session/SKILL.md the DSH skill that tells an agent when to reach for these tools
install/cordis-block.yml      the MCP row, with __ROOT__/__SERVER__ placeholders
scripts/install-to-dsh.ps1    installs the skill + row into the live DSH home and mirrors my_agent_setting
test.mjs                      tests: frame scanner, summarizer, activity, caller lookup, every tool, stdio
spike/                        throwaway probes used to reverse-engineer the session-log format

Test

npm install --cache .\.npm-cache   # sandboxed npm needs its cache inside the project
npm test

The stdio round trip is skipped when the sandbox forbids spawning a child with pipes (spawn EPERM); everything else runs without a transport.

Limitations

  • Live sessions only show what is already on disk. Activity is derived from log mtimes and records, so a session that just started may show one poll late.

  • Session format v2 only (session.v2.jsonl.zstd). An older or future format is not parsed.

  • Subagent work is not a separate session — it appears inside its parent's log.

  • Titles come from the log, so an untitled session shows no title until DSH writes one.

  • The board is machine-local and unauthenticated: any session on this machine can post.

Available Tools

6 tools
announceA

Post a short note for the other DSH sessions: what you are working on, which files or repo you are touching, or a decision they need to see. Other sessions read it with board. Call it when you start something long, take ownership of files another session might edit, or finish a task.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesOne or two sentences, in the language of the conversation.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses that the note is broadcast to other sessions and is consumed via `board`, but says nothing about note lifetime/expiry, author attribution, or whether posting overwrites anything. Adequate disclosure of audience, incomplete on persistence semantics.

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 waste: purpose and audience first, then trigger conditions. Every clause earns its place and the call-to-action is front-loaded.

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?

For a one-parameter, no-annotation, no-output-schema tool, the description covers purpose, audience, read path, and when to invoke. Minor gap on note lifetime/attribution, which would matter for a shared coordination board but is not strictly needed to call the tool 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?

Schema coverage is 100% for the single `text` parameter, so the schema already documents format and language expectations. The description adds content guidance (what to include in the note) that complements the parameter, but no syntax or length detail beyond the schema. Baseline 3 applies when the schema does the work.

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?

States a concrete verb+resource ('Post a short note for the other DSH sessions') and enumerates the content types (work in progress, files/repo, decisions). It also names the sibling that reads the notes ('board'), so an agent can distinguish announce from board without opening either schema.

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 trigger conditions are given: start something long, take ownership of files another session might edit, or finish a task. It also specifies the read counterpart ('Other sessions read it with `board`'), giving both when-to-use and the alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

boardA

Read the notes other DSH sessions posted with announce, newest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum notes to return (default 20).
since_minutesNoOnly notes younger than N minutes.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it does disclose two behavioral facts: results are ordered newest first and are scoped to notes from *other* DSH sessions (implying the caller's own notes are excluded). It does not say anything about the note structure, whether posting requires announce first, or pagination behavior.

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?

A single tight sentence with no filler, and the most important scoping fact (which notes) plus ordering are front-loaded. Nothing could be removed without losing information.

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?

For a read-only listing tool with a fully documented two-parameter schema and no output schema, the description covers scope, source, and ordering adequately. The only gap is that the shape/content of a returned note is left entirely implicit.

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%, with both `limit` (default 20) and `since_minutes` fully documented in the schema itself. The description adds no syntax, format, or interaction details for either parameter, so the baseline of 3 applies.

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?

States a specific verb (Read) and resource (notes other DSH sessions posted) and names the sibling tool `announce` that produces the content, which cleanly separates it from the write side. The 'newest first' ordering also pins down what the result looks like. An agent can tell this is the announcement-reading tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains what the tool reads but gives no guidance on when to reach for it versus `peers`, `overlaps`, `session_detail`, or `whoami`. There is no explicit when-to-use or when-not-to-use statement; an agent must infer that this is the bulletin-board counterpart to `announce`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

overlapsA

Report collision risk between DSH sessions: files touched by more than one session, sessions sharing one workspace, and git commands run in the same repo. Use it before editing a repo another session is working in, or when the user asks whether two sessions will clash.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum sessions to consider (default 12).
active_within_minutesNoHow far back to look for activity (default 240).

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden. It discloses what is compared, which usefully implies a read-only analytical operation, but it says nothing about cost, latency, scope of scanning, or whether the report is exhaustive or sampled.

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: the first defines the output dimensions, the second the usage conditions. Nothing is wasted and the substance is front-loaded.

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?

With no output schema, the description partly compensates by listing the three report categories. There are no annotations to cover safety or mutability either, but the tool is clearly a read/report operation and only the response format and limits remain underspecified.

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 limit and active_within_minutes are already fully documented in the schema. The description adds no additional meaning such as windowing semantics or how truncation via limit affects the collision analysis, so the baseline 3 applies.

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?

It states a specific verb (report) and resource (collision risk between DSH sessions) and enumerates the three concrete dimensions detected: overlapping file touches, shared workspaces, and duplicate git commands in one repo. That level of detail clearly separates it from siblings like peers or session_detail.

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?

It gives explicit triggering conditions: before editing a repo another session is working in, or when the user asks whether two sessions will clash. It does not name alternative tools (e.g. peers) or say when not to use it, so it stops just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

peersA

See what the other DSH agent sessions on this machine are doing right now: their workspace, title, whether a tool is still running, the last thing the human asked them, and the last thing they answered. Use it before touching files or repos another session might be editing, when the user mentions another window or session, or to check whether a task is already being handled elsewhere.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum sessions to show (default 8).
workspaceNoOnly show sessions whose workspace path contains this text.
include_dormantNoInclude sessions with no recent activity (default false).
active_within_minutesNoOnly show sessions with activity in the last N minutes (default 30).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral load. It effectively communicates read-only observation via 'See' and 'check', and discloses the specific current-state fields returned and recency ('right now'), though it does not explicitly state absence of side effects or any auth requirements.

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: the first defines the tool and enumerates return fields; the second gives usage scenarios. Front-loaded, no waste, every sentence earns its place.

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?

No output schema exists, so the description must explain return values. It enumerates the key fields returned, which is helpful, but does not specify the structure (e.g., list) or ordering. Combined with complete schema coverage for parameters, it is largely complete.

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 all four parameters including defaults and filters. The description adds no parameter-level detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'See what the other DSH agent sessions on this machine are doing right now' with an enumerated list of returned details. It does not explicitly name or distinguish itself from siblings like session_detail or overlaps, so it falls short of a 5.

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?

Gives three clear when-to-use scenarios: before touching shared files/repos, when the user mentions another window/session, and to check if a task is already handled. No when-not guidance or named alternatives, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

session_detailA

Read the recent activity timeline of one DSH session in order: human messages, agent replies, and tool calls. Use it after peers when another session's work matters to yours — to see exactly what it changed, decided, or is still running.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum timeline entries, newest kept (default 30).
framesNoHow many log frames of history to decode; higher is deeper (default 24).
session_idYesFull session id or an unambiguous prefix, as shown by `peers`.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden; 'Read' signals a non-mutating operation, and it discloses that the timeline is returned in order and spans three entry types, which is real behavioral content. It does not mention permissions, rate limits, or how truncation behaves when limit/frames are exhausted, so it falls short of full disclosure.

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 tight sentences: the first front-loads what is returned, the second front-loads when to reach for it. No filler, no repetition of schema fields.

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?

With no output schema and no annotations, the description must stand alone; it usefully describes the returned timeline composition (messages, replies, tool calls) and ordering, covering most of what an agent needs. It stops short of describing response shape or truncation semantics, which is the main remaining gap.

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% and all three parameters (limit, frames, session_id) are documented in the schema, including the prefix-matching behavior of session_id. The description adds no parameter-level detail beyond what the schema already supplies, so the baseline 3 applies.

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?

States a specific verb (Read) plus a precisely scoped resource (the recent activity timeline of ONE DSH session) and enumerates what the timeline contains: human messages, agent replies, tool calls. This distinguishes it from siblings like peers (list) and overlaps without needing to open any schema.

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?

Explicitly sequences usage: 'Use it after `peers` when another session's work matters to yours,' naming the sibling that precedes it and the triggering condition. It lacks an explicit when-not clause (e.g., what to use for a broad multi-session view), but the routing intent is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiA

Identify which DSH session you are running in: session id, workspace, title, and whether a tool is currently running. Useful when you need to tell a human or another session where a note came from.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden — and for a zero-parameter introspection call it does reasonably well by disclosing exactly what identity information is surfaced, including the live 'whether a tool is currently running' status. It never explicitly says the call is side-effect free or whether it requires an active session, which is the remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, with the identity payload front-loaded and the use case trailing. Every clause does work, though the phrasing is slightly loose and could have been trimmed further.

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?

There is no output schema, so the description must describe the return values itself — and it does, listing session id, workspace, title, and running status. It stops short of specifying formats (e.g., id form, title source) or the relationship to session_detail, leaving a small but real gap.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description instead usefully characterizes the return payload, which is the relevant semantics for a no-arg call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (Identify) and resource (DSH session) and enumerates the returned fields: session id, workspace, title, and running-tool status. It is clear on its own, but it never contrasts itself with the sibling 'session_detail', which an agent would plausibly confuse it with.

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?

It offers one concrete scenario ('when you need to tell a human or another session where a note came from'), which is implied usage guidance rather than an explicit rule. It does not state when not to use it or name alternatives such as session_detail, so the agent must still infer the boundary.

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.

  1. 6 tool updatesv0.1.0
    • First observedannounce
    • First observedboard
    • First observedoverlaps
    • First observedpeers
    • First observedsession_detail
    • First observedwhoami

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct slice of cross-session awareness: peers (all sessions at a glance), session_detail (one session's timeline), whoami (self), overlaps (collision risk), announce/board (write/read notes). The descriptions explicitly cross-reference each other ('Use it after peers', 'Other sessions read it with board'), making selection unambiguous.

Naming Consistency3/5

Names are readable but follow no single convention: session_detail uses snake_case while peers, overlaps, announce, board, and whoami are bare single words mixing nouns (peers, board) with verbs (announce) and a question-style identifier (whoami). Predictable enough to navigate, but not a consistent verb_noun pattern.

Tool Count5/5

Six tools is well-scoped for a cross-session coordination server: three read/awareness tools, two messaging tools, and one identity tool. Every tool earns its place with no redundant surface.

Completeness4/5

The surface covers the core lifecycle — discover sessions, inspect activity, detect collisions, broadcast notes, read notes, and identify self. Minor gaps exist: no targeted messaging to a specific session, no reply/threading on the board, and no way to clear or expire notes.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables peer-to-peer communication, discovery, shared state, and file coordination between AI coding agents across machines and sessions.
    49 npm
    19
    Elastic 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Enables local messaging between Claude Code, Codex, Pi, and other coding-agent sessions on the same machine, allowing them to discover each other, send updates, ask questions, and reply.
    8
    13 npm
    2
    AGPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides real-time presence and collision avoidance for parallel AI coding agents, allowing them to report and query activities to avoid overlapping edits and destructive git operations.
    31 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables already-running AI coding agents on the same project to register, discover one another, and exchange durable direct messages so they can share progress and avoid conflicting work.
    Apache 2.0