On Board
On Board is a local MCP server for shared, project-scoped agent memory, ticket-based work handoffs, and agent-to-agent wakeups.
Initialize or bootstrap
.agent-mem/project memory and run status, doctor, and token-usage checks.Register/onboard agents with stable identities, roles, platforms, and task focus.
Write, read, search, link, unpin, checkpoint, and hand off memories stamped by agent identity.
Get token-aware briefings, compact old memories into digests, and search archived memories.
Update shared project state and read external context directories/files.
Create, claim, submit, review, approve/reject, cancel, terminate, and list tickets with evidence and review notes.
Park agents with
memory_wait_for_eventso they wake on peer ticket or memory changes instead of human relay.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@On Board show me the open tickets in the queue"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
On Board
Shared project memory for agents. One MCP server, one project memory folder, many IDEs and agent clients. Skill-first setup, one shared runtime, and project-scoped configuration.
Related MCP server: ForgeSwarm
What this is
On Board is a local MCP server for coordinating AI agents across a project. It gives Claude Desktop, Claude Code, Codex, Cursor, Antigravity, and other MCP clients the same project memory, ticket queue, and handoff history.
The goal is simple: when one agent stops and another agent continues, the next agent should not need the human to explain the project again.
onboard → read memory → claim work → write progress → hand offEverything stays local to the project unless you choose to connect other tools.
Quick start (skill-first)
Install the onboard skill from inside the project you want to configure:
# Node.js 22.20 or later; select your agent when prompted.
npx skills add swisspra/On_Board --skill onboardnpx runs the skills CLI from npm; the skill itself comes from Git. No separate
On Board npm package is needed. The skill guides runtime installation and native
client configuration; installing the skill alone does not start an MCP server,
upgrade an existing shared runtime, or initialize memory.
Native resources require a verified 4.2+ runtime. A working 4.1.1 or source installation can stay in place; see runtime upgrades or the optional source runtime.
Then send your agent this prompt:
Using /onboard, set up On Board for this project. Keep existing memory and other MCP servers unchanged.The /onboard skill reuses one shared onboard-memory-mcp runtime and
configures one project — the one you run it in — for one client of your
choice. It resolves an existing runtime first and installs the shared runtime
only when none is present (reuse, not a per-project install). It reads and writes
only that project's own MCP config. It does not initialize or migrate
.agent-mem/, and it does not touch other MCP servers, your instructions, or
hooks.
What happens, in order:
Reload your agent after the install so it discovers the new
/onboardskill (reopen the window, or start a new session).The skill resolves or installs the shared runtime and writes the project's MCP config.
Trust and restart your MCP client so it loads the new
agent-memoryserver. Some clients ask before running a newly added server; approve the prompt, then restart.
Prerequisites are real, not hidden behind a one-command promise:
Node.js ≥ 22.20 to run
npx skills.Setup helper: Python ≥ 3.11. The skill's
scripts/setup.pyneeds it; where the machine'spython3is older, run the one-time helper withuv run --no-project --python 3.12 scripts/setup.py ….Runtime: Python ≥ 3.10, plus
uvorpipxalready installed, for theonboard-memory-mcpruntime the skill installs.
Runtime states, so you know where you are: Runtime available (the runtime is
resolved or installed) → Configured (the project's MCP config now points at
it) → Awaiting trust or restart (the client has not loaded it yet) →
Ready (the client shows the agent-memory tools). Setup ends at Ready;
initializing or joining a board is a separate step, started only when you
explicitly ask the agent to begin work.
Prefer to wire things by hand, or install from a package manager or a clone? Those paths stay fully supported — see Manual installation and docs/SETUP.md.
🚀 v4.0.0 — agents now wake each other
Until v4 this board was pull-only: an agent found out about new work when a
human told it to look. v4 ships memory_wait_for_event — an agent parks
inside one tool call and wakes the moment a peer creates a ticket, submits
work, or delivers a verdict.
This is not a demo claim. In the launch trial, a GPT agent (Codex) and a Claude agent closed a full reject → fix → resubmit cycle on this board with zero human relay — the reviewer's fix instructions travelled inside the wake payload, the worker re-read the file, attached a sha256, and resubmitted; the reviewer reproduced the hash byte-for-byte before approving:

Full mechanics in Agent-to-agent: the listening half · breaking changes in CHANGELOG.md · release notes.
Why this exists
Most agent workflows break for boring reasons:
The next chat does not know what the last chat did.
Parallel agents overwrite or redo each other's work.
Important decisions live only in conversation history.
Handoffs are informal, so review and follow-up work drift.
On Board keeps those facts in project-local files under .agent-mem/.
The MCP tools expose that memory to any supported client.
Who this is for
Solo developers using more than one agent or IDE
Teams experimenting with multi-agent coding workflows
Projects where handoffs, tickets, and review notes matter
Local-first MCP users who want shared context without a hosted service
It is not an autonomous project manager. Humans still decide what matters, review important changes, and accept the final result.
Manual installation
These paths stay supported; they are just secondary to the skill-first quick start above. Use them to install from a package manager, or to run everything from a clone by hand.
Install the server
The server is published as onboard-memory-mcp.
Install it with whichever tool you prefer:
# Homebrew (tap once, then the short name works: brew install onboard-memory)
brew install swisspra/tap/onboard-memory
# pipx
pipx install onboard-memory-mcp
# uv
uv tool install --python 3.12 onboard-memory-mcpAll three provide the onboard-memory-mcp command (Homebrew also adds a short
onboard-memory alias). Homebrew covers macOS and Linux; on Windows use
pipx or uv (the command is onboard-memory-mcp.exe). Point your MCP client's
command at it instead of python3 onboard_server.py. You can also skip this
and run from a clone using the setup paths below. (On Homebrew 6+, approve the
one-time tap-trust prompt, or run brew trust swisspra/tap.)
The v4.2.0 runtime uses mcp[cli]>=2.3.0,<3 and the SDK's MCPServer
API. The lockfile selects MCP 2.3.0; SDK 1.x is no longer supported.
Minimum AnyIO, PyJWT, and cryptography versions also prevent installers from
retaining known-vulnerable transitive dependencies.
Headless config (no clone)
With the server installed, wire your MCP client to it directly — no repo
checkout, no setup-project.sh:
{
"mcpServers": {
"agent-memory": {
"command": "onboard-memory-mcp",
"env": { "AGENT_PROJECT_DIR": "/full/path/to/your/project" }
}
}
}CLI clients (Claude Code, Codex) inherit your shell
PATH, so the bareonboard-memory-mcpworks.GUI clients (Claude Desktop, Cursor) launch with a minimal
PATH. Use the absolute path fromwhich onboard-memory-mcp(whereon Windows) ascommand— typically/opt/homebrew/bin/onboard-memory-mcp(Homebrew, Apple Silicon),/usr/local/bin/onboard-memory-mcp(Homebrew, Intel),/home/linuxbrew/.linuxbrew/bin/onboard-memory-mcp(Homebrew, Linux),~/.local/bin/onboard-memory-mcp(pipx / uv on macOS/Linux), or%USERPROFILE%\.local\bin\onboard-memory-mcp.exe(pipx / uv on Windows).
AGENT_PROJECT_DIR is required — it decides which project owns .agent-mem/.
Nothing here initializes memory: starting work is a separate step. In your first
work session, call memory_init once (creates .agent-mem/) — or
memory_bootstrap when adopting an existing repo — then memory_onboard each
session. If .agent-mem/ already exists, never bootstrap it again; just join.
The pipx/uv path normally uses prebuilt dependency wheels on supported
CPython 3.11+ platforms. Wheel availability depends on Python and architecture;
Python 3.10 or Intel macOS may need a C/Rust toolchain. Homebrew bottle builds
target ARM macOS and x86_64 Linux. Upstream dependency bottles are currently
unavailable for Intel macOS, so Homebrew is not a compiler-free fallback there.
Template: configs/binary-mcp.json; full detail and
platform notes in docs/SETUP.md.
Set up a project
Choose one setup path:
Option 1: Agent setup
The skill-first quick start above is the recommended path. If you would rather not use the skill CLI, ask an agent to read AGENT_SETUP.md — it delegates to the canonical install reference instead of inventing a second recipe — and to docs/SETUP.md for the manual steps.
Option 2: Script setup
git clone https://github.com/swisspra/On_Board.git
cd On_Board
bash setup-project.sh /full/path/to/your/project
bash doctor.sh /full/path/to/your/projectAdd the generated MCP config to your client:
/full/path/to/your/project/.onboard/mcp.generated.jsonSome clients accept this JSON directly. Others require you to merge it into their own MCP settings file.
After memory is initialized, open the dashboard with:
bash /full/path/to/your/project/.onboard/run-dashboard.shOn Board is installed once. Each project points to the same On Board folder,
but gets separate memory through AGENT_PROJECT_DIR.
Each setup-project.sh run also registers the project locally in
.onboard/linked-projects.json inside the On Board checkout. This file is
gitignored and only helps updates remember which projects point here.
The setup script uses uv sync --inexact to install/update dependencies without
pruning local test/dev extras. MCP clients run python3 onboard_server.py; the
launcher uses the local .venv directly and rebuilds it only if the venv is
missing. This keeps normal startup fast, avoids uv run startup timeouts, and
makes a shared central checkout more durable.
On Board does not write memory from end-turn hooks. Current Stop hooks in
several agent clients run every turn, which creates noisy memory and can force
agents to re-onboard too often.
Optional: add AGENT_MEM_CONTEXT_DIRS to the generated MCP config when agents
should read shared docs/specs outside the project folder.
Option 3: Advanced manual setup
If you do not want to run the setup script, install with uv sync, write the
MCP config yourself, and add project rules/hooks manually. See
docs/SETUP.md.
Setup stops at the config; nothing above initializes memory. When you later
start work in the project — a separate, explicit request — do it in a chat with
any MCP-aware agent (Claude Desktop, Claude Code, Cursor, Codex, Antigravity).
Skip memory_bootstrap if .agent-mem/ already exists and just join:
memory_bootstrap(
agent_name="dev-main",
description="Existing project using On Board",
current_task="Set up shared project memory"
)
memory_onboard(
agent_name="dev-main",
agent_platform="claude-code",
agent_role="main"
)That's it. The agent now sees the project briefing, the open tickets, the recent memory, and the protocol it should follow. Every subsequent action is stamped with its identity.
Full setup details and manual setup: see docs/SETUP.md.
To update an existing install, run bash update.sh in the central On Board
checkout. It will show known linked projects. Refresh all of them with
bash update.sh --refresh-linked, or inspect them with
bash setup-project.sh --list-linked.
The loop in one example
1. SPEC
opus-testcase reads requirement → writes 5–20 acceptance tickets
with explicit pre/post conditions.
2. BUILD
dev-track-2 claims a ticket → implements in src/ → submits with
file diff + test plan.
3. TEST
Jonhny-tester picks up submission → runs UI in Chromium → captures
screenshots → submits PASS or FAIL with evidence.
4. REVIEW
desktop-opus4.7 (or the human) checks evidence → approves OR rejects
with concrete fix instructions.
If rejected → ticket reopens → dev-track-2 patches → Jonhny retests
→ loop closes.When this loop runs cleanly, a single ticket goes from open to "shipped
to production" in 4–15 minutes of agent time. The human checks in at the
end, not in the middle.
Agent-to-agent: the listening half (v4)
Everything above still works pull-style. v4 adds the missing edge: agents can now wake each other instead of waiting for a human to relay messages.
worker: memory_wait_for_event(agent_name="dev-track-2", timeout_s=180)
→ parks inside one tool call until the board changes
lead: memory_create_ticket(..., assigned_to="dev-track-2")
worker: wakes in seconds, claims, works,
memory_submit_ticket(..., stay_active=True)
lead: wakes on the submission, reviews
worker: wakes on the verdict — approve closes the loop;
a rejection arrives WITH the review notes and fix
instructions in the wake payload, so it re-claims,
fixes, and resubmits without asking anyoneDesign points, all field-verified across Claude Desktop × Claude Desktop and Claude × Codex (GPT):
Check before blocking — a re-arm after a gap returns its backlog in 0 s instead of waking empty. One wake drains the whole queue.
Loop guard — an agent never wakes on its own actions, so two listeners cannot ping-pong each other.
Role gate — completed ≠ success: whoever executed a ticket may reach
submittedbut may never close it; only the owner or a main/lead/reviewer adjudicates. Solo use is still possible via explicitallow_self_review=True, permanently stamped in the audit.Client limits respected — Claude Desktop cancels tool calls at ~240 s per call (measured), so timeouts clamp to 200 s there; stdio clients (Claude Code, Codex) may pass
long_waitand park much longer.Idle budget, in minutes — the server counts consecutive empty parks and answers
STAND-DOWNonceidle_budget_min(default 15) is spent, so an unattended listener stops on its own instead of looking wedged. Budgets are stated in minutes because a human watching a silent loop counts wall clock, not iterations — a compliant agent looping for 20 minutes looks stuck even when it is exactly on budget. Every idle reply printsidle 3/5 — ~6 min to stand-down. The counter resets on a real event and never on re-arming, andSTAND-DOWNis a distinct status so a loop matching onidlecannot read it as permission to continue.idle_budget_min=0listens indefinitely.Use the
listenMCP prompt for the standard re-arm loop.
v4 also hardens the board for simultaneous writers (advisory lock on ticket mutations, per-process tmp files), because with A2A two agents acting in the same instant is the normal case, not the rare one. Breaking changes and the migration guide live in CHANGELOG.md.
Tools (30 MCP tools, 5 buckets)
Bucket | Tools |
Agent lifecycle |
|
Ticket queue |
|
Persistent memory |
|
Project context |
|
Compaction |
|
Full reference: docs/TOOLS.md.
Native resources (v4.2.0)
Three read-only JSON resources are exposed for clients that read MCP resources:
onboard://project, onboard://tickets, and onboard://memory/summary. They
return bounded projections (no raw memory bodies) and never create or modify a
board.
Every resource read is live state with a private ttlMs 0 hint; only the static
response catalogs use ttlMs 60000. Clients that support resource subscriptions
and honor them get a coalesced ResourceUpdated invalidation notice when any of
the three resources change. That is a re-read cue — not durable delivery and not
a model wake-up; there is no replay. Use memory_wait_for_event when an agent
must actually be woken by a peer.
On Board ships no MCP App (ui://) view this round: a host-rendered view is not
a dependable wake mechanism, and not every host — CLI clients in particular —
renders apps. See docs/TOOLS.md.
What makes this different
On Board is not only a place to store memories. It keeps the work loop visible:
onboard -> claim ticket -> submit evidence -> review -> approve or reopenThat gives agents a shared queue, stable identities, recent handoffs, and a review gate. Rejected work reopens with fix instructions instead of becoming a dead terminal state.
Project structure (runtime data)
your-project/
├── .agent-mem/ runtime memory, gitignored
│ ├── project.json
│ ├── agents.json agent registry (identity, status, KIA)
│ ├── memories.json
│ ├── state.json project phase, owner, design defaults
│ ├── archive.json
│ ├── digests.json
│ ├── checkpoints/
│ └── tickets/
│ ├── _index.json
│ ├── TK-<id>.md the spec
│ ├── review/TK-<id>-submit.md dev submission
│ ├── closed/ approved work
│ └── rejected/<ticket_id>/attempt-<N>/
│ ├── <ticket_id>.md rejected spec for that round
│ ├── <ticket_id>-submit.md submission under review
│ └── <ticket_id>-rejected.md reviewer notes + fix instructionsEverything is plain text or JSON. You can cat your way through the
project's full history. No vector DB lock-in, no opaque embeddings — just
files an audit can read.
Current status (v4.2.0)
The primary skill-first route reuses one shared onboard-memory-mcp runtime —
installed once and reused by every configured project, each with its own
project-selected memory folder. A central On Board checkout stays a supported
secondary path:
The skill-first command above is the primary installation entry; a project is configured with the
/onboardskill for one chosen client, reusing an existing runtime and installing the shared runtime only when none is present. Memory is never initialized or migrated by the installer.Three read-only native resources (
onboard://project,onboard://tickets,onboard://memory/summary) expose bounded project, ticket, and memory projections. All three reads carry a privatettlMs 0hint (only the static catalogs usettlMs 60000); subscription notifications are a capability-dependent re-read cue, not a model wake-up. They exist only on a verified v4.2+ runtime.memory_onboardis the primary start call for agents and returns compact current context.memory_wait_for_eventturns the board push-capable: agents park, wake on peer actions, and close reject/retry loops with zero human relay (see the A2A section).memory_doctorchecks board health and data integrity — a diagnostic, not a setup gate.The secondary source route runs
setup-project.sh, which generates project MCP config, rules, startup hooks, and a dashboard launcher.Linked-project registry tracks which projects point at the central checkout, so updates can refresh known projects without scanning the machine.
In that source route, runtime startup uses
python3 onboard_server.py; the launcher normally execs.venv/bin/python server.pyand only falls back touv sync --inexactif.venvis missing. The primary route points clients at the installedonboard-memory-mcpexecutable instead of the source launcher.Existing working 4.1.1 or source-based bindings keep working unchanged; the skill asks before replacing a shared runtime, and it never upgrades one unsolicited.
Startup hooks return a small read-only briefing. End-turn/Stop hooks are not installed by default because current clients can run them too often.
The dashboard is local and read-only.
Full CHANGELOG: CHANGELOG.md.
License
Apache-2.0. Free to use, fork, modify, redistribute, build commercial products on. No restrictions on use.
Available Tools
30 toolsmemory_agent_joinA
Register as an active agent.
Multiple active agents may share a platform. Use ticket claims and roles to prevent work collisions. Your agent_name is stamped on EVERY write for traceability.
Inputs: params (required). Returns: result
memory_bootstrapA
Bootstrap .agent-mem/ for an EXISTING project by auto-scanning the codebase.
Reads: README, git log, directory structure, package configs. Seeds memory with: project context, tech stack, recent history, structure, warnings.
Use this instead of memory_init when joining an existing project for the first time. After bootstrap, the next agent gets full context without you manually typing everything.
Returns: str: Bootstrap summary with what was discovered and seeded.
Inputs: params (required). Returns: result
memory_cancel_ticketCIdempotent
Cancel a ticket. Allowed: creator, claimer, or an active main/lead/reviewer agent.
Inputs: ticket_id (required), agent_name (required), reason. Returns: result
memory_checkpointA
Full state checkpoint. Do every 10-15 min or before risky ops. Saves both as memory entry AND standalone file; rejected outright if .agent-mem/checkpoints resolves outside the project.
Inputs: params (required). Returns: result
memory_claim_ticketBIdempotent
Claim an open ticket (sets to claimed). Call again on a claimed ticket to advance to in_progress (e.g. when spawning a subagent).
Inputs: params (required). Returns: result
memory_compactA
Compact old memories into compressed digests to save tokens.
How it works:
Splits memories into HOT (recent/pinned) and COLD (old)
Groups cold entries by agent session
Compresses each group into a local digest
Archives raw cold entries to archive.json
Keeps only hot entries in memories.json + adds digest references
Token savings: typically 60-80% reduction on old entries.
Config via env vars:
AGENT_MEM_HOT_HOURS: hours to keep full detail (default: 24)
AGENT_MEM_MAX_HOT: max hot entries (default: 50)
Inputs: params (required). Returns: result
memory_context_dirsARead-onlyIdempotent
List all configured external context/info directories and their files.
Context dirs are set via AGENT_MEM_CONTEXT_DIRS env var (colon-separated paths). These folders contain reference docs, specs, shared info that agents should know about but live outside the project folder.
Returns: str: List of context dirs and their contents.
Inputs: no named parameters. Returns: result
memory_context_readARead-onlyIdempotent
Read a file from the external context directories.
Searches all configured AGENT_MEM_CONTEXT_DIRS for the filename. Use memory_context_dirs to list available files first.
Returns: str: File content (truncated to max_chars).
Inputs: params (required). Returns: result
memory_create_ticketB
Create a ticket requesting help from another agent.
Ticket is saved as .md file in tickets/ (open queue). Assign to a specific agent NAME or leave open for anyone.
Examples:
PM needs coder: assigned_to="cursor-coder"
Coder needs review: assigned_to="codex-main"
Anyone can pick up: assigned_to=None
Inputs: params (required). Returns: result
memory_doctorARead-onlyIdempotent
Check project-local On Board setup without changing files.
Inputs: no named parameters. Returns: result
memory_get_briefingARead-onlyIdempotent
CALL THIS FIRST. Token-aware briefing with workflow modes.
Loads: hot memories (full detail) + warm digests (compressed history). Use mode='brief' for handoff-first catchup, 'normal' for default onboarding, 'deep' for broad context, or 'handoff-only' for fast task transfer.
Inputs: params (required). Returns: result
memory_handoffB
Formal handoff. ALWAYS call before leaving. Next agent sees this first.
Inputs: params (required). Returns: result
memory_initAIdempotent
Initialize .agent-mem/ in the project root. Call once per project. Safe to re-call.
Inputs: params (required). Returns: result
memory_linksARead-onlyIdempotent
Show ticket, file, agent, and tag relationships across memory entries.
Inputs: params (required). Returns: result
memory_list_ticketsARead-onlyIdempotent
List tickets. Shows open/in_progress/in_review by default. Use include_closed for history.
Inputs: params (required). Returns: result
memory_onboardB
Compact session entrypoint: join, collision-check, and show current working context.
Inputs: params (required). Returns: result
memory_prepare_compactionARead-onlyIdempotent
Returns cold entries grouped by agent session — ready for YOU to summarize.
Read the returned entries, write your own digest with memory_write(memory_type='context'). Digests are read ONLY by agents: write them in compressed English (token-thrift) — facts, decisions, file paths; no prose. Code/paths/IDs stay verbatim. then run memory_compact() to archive the originals.
Workflow:
Call memory_prepare_compaction() → get grouped cold entries
Read and summarize them yourself
Call memory_write(memory_type='context', title='Digest: ...', content='your summary')
Call memory_compact() → archives cold entries, keeps your digest
Returns: str: Cold entries grouped by agent, with token counts.
Inputs: no named parameters. Returns: result
memory_readBRead-onlyIdempotent
Read memories with filters. Filter by agent_name to trace who wrote what.
Inputs: params (required). Returns: result
memory_review_ticketA
Review a submitted ticket. Approve → closed/ or Reject → rejected/.
On approve: moves ticket + submission to closed/ On reject: archives THIS attempt to tickets/rejected/<ticket_id>/attempt-/ (ticket spec marked 'rejected', the submission, and <ticket_id>-rejected.md with the fix instructions), then reopens the canonical ticket + index as 'open'. Each attempt gets its own directory, so a later rejection never overwrites an earlier one.
Inputs: params (required). Returns: result
memory_searchBRead-onlyIdempotent
Search across all memories with local relevance ranking.
Inputs: params (required). Returns: result
memory_search_archiveARead-onlyIdempotent
Search the cold archive (compacted entries). Use when you need old details that were compressed out of the hot memory.
Inputs: params (required). Returns: result
memory_search_vectorCRead-onlyIdempotent
Optional vector-style search. Disabled by default; JSON remains canonical.
Inputs: params (required). Returns: result
memory_statusCRead-onlyIdempotent
Quick status dashboard.
Inputs: no named parameters. Returns: result
memory_submit_ticketA
Submit completed work on a ticket for review.
Creates a submission report in tickets/review/ and moves ticket to review status. Another agent (reviewer/PM) will approve or reject.
Inputs: params (required). Returns: result
memory_terminate_ticketADestructiveIdempotent
Forcefully terminate a ticket at any stage. Creator or active main/reviewer only.
Inputs: ticket_id (required), agent_name (required), reason. Returns: result
memory_token_usageARead-onlyIdempotent
Show token usage breakdown and recommend compaction if needed.
Returns token estimates for: hot memories, digests, archive, briefing output.
Inputs: no named parameters. Returns: result
memory_unpinAIdempotent
Unpin a memory without deleting it, preserving the audit record.
Inputs: params (required). Returns: result
memory_update_stateCIdempotent
Update shared key-value state. Stamped with agent_name.
Inputs: params (required). Returns: result
memory_wait_for_eventARead-only
Park until another agent acts, then return everything pending.
The listening half of On Board. Instead of a human relaying messages, an agent blocks here until a peer creates a ticket, changes a status, or assigns work.
Returns instantly if events piled up since your last call, so re-arming after a gap costs one call rather than an empty wake. One wake drains the whole queue. You never wake on your own actions.
Re-arm by calling it again — the cursor is stored per agent, so you carry no bookkeeping.
Inputs: params (required). Returns: result
memory_writeB
Write a memory entry stamped with your agent_name.
Inputs: params (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 30 tools
Most tools target distinct workflow steps, but there are genuine collision zones: memory_init vs memory_bootstrap (both seed .agent-mem/), memory_onboard ('compact session entrypoint') vs memory_get_briefing ('CALL THIS FIRST'), and three search tools (memory_search, memory_search_archive, memory_search_vector) that an agent may pick wrong. memory_cancel_ticket vs memory_terminate_ticket also overlap, distinguished only by 'forcefully' and role restrictions. Descriptions help, but conflicting entry-point guidance is a real misselection hazard.
All tools share a uniform memory_ prefix and snake_case, with mostly predictable verb_noun forms (memory_create_ticket, memory_claim_ticket, memory_search). Minor deviations are noun-only names like memory_doctor, memory_status, and memory_links. Very readable as a set.
30 tools exceeds the heavy threshold, and several could be consolidated (init/bootstrap, three search variants, prepare_compaction/compact/status/doctor/token_usage cluster). However the domain is genuinely broad — memory store, ticketing, compaction, handoff, external context — so most tools map to a distinct step rather than being padding.
Ticket lifecycle is well covered (create, claim, submit, review, cancel, terminate, list), but there are dead ends: memory_unpin exists with no memory_pin counterpart, and there is no memory_delete despite unpin referencing preservation 'without deleting'. The vector search is disabled by default, and ticket detail retrieval only comes indirectly via list.
Maintenance
Related MCP Connectors
Team memory for AI coding agents and code reviews, reviewed by humans and served over MCP.
The coordination layer for autonomous agents working on beneficial projects: research, shared knowledge, and tools that help people or agents. Discover public goals, share a workspace, claim leased tasks, exchange handoffs, submit evidence, and review results without a human dispatcher. Agents execute in their own runtimes. Public help; OAuth or an agent key for protected tools. Start the two-agent walkthrough: https://agentsknow.app/docs/getting-started. MCP: https://agentsknow.app/mcp. Skills and examples: https://github.com/stockblog/agentboard-checkpoint (client and instructions, not server source).
An MCP memory server. One memory your agents share — across models, devices and apps.
Shared memory for coding agents and their teams: project docs with semantic search, plus epics, tasks, open questions and decisions your agent reads and writes over MCP. Teammates and their agents share the same board. Deploy and permanent delete stay human-only and are enforced by the server. Free tier, no card. Setup: https://app.bilgai.com/docs/connect — API key (blg_) as Bearer or OAuth. Issues: https://github.com/volkansuner/bilg-feedback
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that enables multiple AI agents to share memory, coordinate tasks, and collaborate effectively across IDEs and CLI tools.11 npm21MIT
- AlicenseAqualityCmaintenanceAn MCP server that turns independent AI agents into a coordinated engineering team with shared task board, context, review loop, and enforced plan-implement-review-iterate workflow.24MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides shared memory, kanban board, and agent registry for AI agents to collaborate as a team, with a live dashboard for human oversight.10 npmMIT
- AlicenseNot gradedqualityBmaintenanceA vendor-neutral MCP server that enables coding agents to delegate tasks, share context, and work as a team through a shared blackboard and task queue.2 npmMIT