Skip to main content
Glama

dibs

Call dibs on files. Run parallel coding agents without collisions.

dibs is a coordination layer for AI coding agents that share a repository: file claims with expiry, enforcement hooks, agent presence, handoff notes, and a git-native knowledge base. One static binary — no server, no database, no background processes.

CI Go Reference Glama License: MIT MCP

Overview · Demo · How it works · Installation · Usage · Enforcement · Lessons · MCP server · Comparison · FAQ

dibs demo

Overview

Running several coding agents — Claude Code, Codex, Cline, Cursor — against one repository in parallel is now a common workflow, typically with one git worktree per agent. The sessions share no state: an agent cannot see what its peers are doing, and two agents that touch the same files produce silent overwrites and unmergeable diffs.

dibs provides the missing coordination primitives:

Problem

What dibs does

Two agents edit the same file; last write wins.

Claims are checked before editing, and hooks can block colliding edits outright.

No visibility into other sessions.

dibs status lists every agent, claim, reason, and expiry.

A crashed agent leaves stale locks.

Claims are leases with a TTL. They expire on their own; there is nothing to clean up and no way to deadlock.

Handoffs between agents are ad hoc.

dibs note broadcasts a message to every agent on the repository, with per-agent read tracking.

Knowledge is lost between sessions.

Lessons are markdown files under .dibs/lessons/, committed with the repository and searched with BM25.

The design rationale is covered in more depth in the introduction post: Why Parallel Coding Agents Need a Coordination Layer.

Related MCP server: Shift MCP Server

Demo

Two agents, one repository:

$ dibs claim src/auth --reason "refactor auth" --agent alice
✓ claimed src/auth/** — lease 82fead6e as alice, expires in 29m

$ dibs claim src/auth/token.go --agent bob --reason "fix token bug"
✗ denied
  src/auth/token.go                    held by alice (refactor auth), expires in 29m
  wait, work elsewhere, or coordinate: dibs note "..."
$ echo $?
2

$ dibs claim src/api --agent bob --reason "new endpoints"
✓ claimed src/api/** — lease b7d31a5b as bob, expires in 29m

$ dibs status
agents
  bob (you)                active 0s ago on main — new endpoints
  alice                    active 0s ago on main — refactor auth

claims
  ● src/auth/**            alice (refactor auth)  expires in 29m
  ● src/api/**             bob (you) (new endpoints)  expires in 29m

With the Claude Code hook installed, an edit that violates a claim is blocked before it happens, and the model is told why:

$ echo '{"tool_name":"Edit","tool_input":{"file_path":"src/auth/token.go"}}' | dibs hook claude
dibs: src/auth/token.go is claimed by alice (refactor auth) — the claim expires in 29m.
Coordinate instead of colliding: wait for the lease, message them with `dibs note`,
or work on files outside their claim. Run `dibs status` to see all active claims.
$ echo $?
2

How it works

dibs relies on a property of git worktrees: every worktree of a repository shares a single common directory (git rev-parse --git-common-dir). State written there is visible to all worktrees immediately, without commits, and never appears in git status.

repo/.git/dibs/     coordination state — leases, presence, notes, journal
                    machine-local, shared by every worktree of the repo,
                    invisible to git

repo/.dibs/         knowledge — lessons/*.md
                    committed and reviewed like any other file, shared
                    with the team and CI through git itself
  • A claim is a JSON file containing an agent name, a set of patterns, a reason, and an expiry. Conflict checks run under an advisory lock; expiry is evaluated lazily at read time. No daemon is required.

  • Identity is resolved from --agent, then DIBS_AGENT, then a stable name derived from the worktree path — so each worktree has a consistent identity with zero configuration.

  • Patterns are doublestar globs relative to the repository root (absolute paths are resolved into it). Claiming a directory claims its subtree, and a path that does not exist yet is treated the same way. Only existing regular files are claimed literally. Glob-to-glob conflict detection is conservative: two globs whose static prefixes are nested are treated as conflicting. Precise claims produce precise conflicts.

  • Every claim, denial, release, expiry, and note is appended to a JSONL journal (dibs log).

Installation

go install github.com/polymatx/dibs/cmd/dibs@latest

Prebuilt binaries for Linux, macOS, and Windows (amd64/arm64) are on the releases page. Building from source requires Go 1.25+; runtime requires git.

A Dockerfile is included for containerized use — mount your repository at /workspace:

docker build -t dibs .
docker run --rm -i -v "$PWD":/workspace dibs mcp

Usage

cd your-repo
dibs init                     # create .dibs/, print next steps
dibs init --agents-md         # append the coordination protocol to AGENTS.md
dibs hook install claude      # enforce claims in Claude Code
dibs hook install pre-commit  # enforce claims at commit time (any agent)

Command

Description

dibs claim <pattern>... [--reason ...] [--ttl 30m]

Lease files or globs. Default TTL 30m, maximum 24h.

dibs release [pattern]... [--all]

Release leases. Bare dibs release releases everything you hold.

dibs renew [--ttl 30m]

Extend all of your leases.

dibs check <path>...

Report whether paths are covered by another agent's lease.

dibs status [--json]

Agents, claims, and unread note count.

dibs note <message>

Broadcast a note to all agents on the repository.

dibs notes

Read notes and mark them read.

dibs log [-n 20]

Show recent journal events.

dibs lesson add|list|show|search

Manage the lessons knowledge base.

dibs mcp

Run the MCP server on stdio.

dibs hook install|uninstall

Manage enforcement hooks.

dibs whoami, dibs version

Identity and build information.

Exit codes: 0 ok/free · 1 error · 2 denied or held by another agent. All state-reading commands accept --json for scripting.

Enforcement

Protocol adherence that depends on a model remembering instructions degrades under context pressure. dibs therefore supports enforcement at two levels, both opt-in:

  • Claude Codedibs hook install claude registers a PreToolUse hook. When an agent attempts to edit a file covered by another agent's claim, the tool call is blocked (exit code 2) and the model receives a message naming the holder, their reason, and the expiry. Agents consistently adjust course when given this context.

  • Any agentdibs hook install pre-commit registers a git hook that rejects commits touching files claimed by another agent.

Hook installation is additive and idempotent: existing entries in .claude/settings.json and existing git hooks are preserved, and dibs hook uninstall claude removes exactly what was added. Both hooks fail open — if dibs cannot run, editing and committing proceed normally.

Lessons

Lessons capture what an agent learned so the next session does not rediscover it:

dibs lesson add "rate-limit middleware must register after auth" \
  --body "The limiter reads ctx.User set by the auth guard. Registering it earlier panics." \
  --tags middleware,auth

dibs lesson search "why does the rate limiter panic"
 1.91 rate-limit middleware must register after auth [rate-limit-middleware-...]
       The limiter reads ctx.User set by the auth guard. Registering it earlier panics...

Lessons are markdown files with YAML frontmatter under .dibs/lessons/:

  • Shared through git — the whole team and CI receive them via git pull; there is no per-machine database to synchronize.

  • Reviewable — knowledge changes go through the same pull-request review as code, and can be corrected or reverted like code.

  • Searchable without infrastructure — BM25 ranking with light stemming over title, tags, and body, computed in memory per query. At the scale of a repository's accumulated lessons, lexical search is instant and requires no embedding model or vector store.

MCP server

dibs mcp runs a stdio MCP server, so agents coordinate through typed tools rather than shell commands. The server instructions and tool descriptions encode the protocol (claim before editing, release when done, leave notes, record lessons):

Tool

Purpose

dibs_claim

Claim patterns with a reason and TTL; returns GRANTED or DENIED with holder details.

dibs_check

Report whether paths are free or held.

dibs_release

Release claims.

dibs_status

Agents, claims, and unread notes.

dibs_note / dibs_notes

Broadcast and read handoff notes.

dibs_lesson_add / dibs_lesson_search

Write and search the knowledge base.

Client configuration:

# Claude Code
claude mcp add dibs -- dibs mcp
# Codex (~/.codex/config.toml)
[mcp_servers.dibs]
command = "dibs"
args = ["mcp"]

Any MCP client with stdio transport is supported.

Comparison

Adjacent tools solve different problems; the table shows where dibs fits.

dibs

Server-based orchestration platforms

beads

claude-squad / vibe-kanban

Primary job

coordination + shared lessons

memory + orchestration suites

issue tracking as agent memory

running and managing sessions

File claims with expiry

✅ via a central server

Blocks colliding edits

✅ hooks

❌ advisory

❌ (isolation via worktrees)

Cross-worktree visibility

✅ instant, via .git common dir

while the server is running

n/a

creates the worktrees

Runtime dependencies

none

server + web UI + database

none

varies

Memory search

BM25 over in-repo files

vector embeddings

issue graph

Installation

single static binary

docker compose stack

single binary

binary / app

dibs composes with these tools rather than replacing them. It pairs naturally with beads for task tracking (dibs claim src/auth --reason "bd-142: refactor auth") and with any session manager, since coordination is independent of how sessions are launched.

Design principles and limitations

  • No infrastructure. No daemon, no server, no database, no telemetry. All state is plain JSON and markdown on disk. If dibs is removed, a repository is left exactly as it was, minus one directory.

  • Leases, not locks. Every claim expires. A crashed or abandoned agent cannot block a repository.

  • Fail-open enforcement. A malfunctioning hook must never prevent legitimate work; enforcement errs on the side of allowing edits.

  • Cooperative trust model. dibs coordinates well-behaved agents and enforces claims inside Claude Code and at commit time. It is not a security boundary against a process that deliberately bypasses it.

  • Machine-local coordination. Live claims are per machine, which matches the dominant workflow of parallel agents on one workstation. Lessons travel across machines through git. Cross-machine live coordination is on the roadmap.

  • Conservative conflict detection. Overlapping glob prefixes are treated as conflicts even when the globs could be disjoint. False positives are cheap; silent collisions are not.

FAQ

What if an agent never calls dibs at all? Install the hooks. The Claude Code hook checks every file-modifying tool call regardless of what the model remembers; the pre-commit hook catches everything else at commit time.

What happens when an agent crashes while holding a claim? The claim expires after its TTL (default 30 minutes). The expiry is recorded in the journal.

Is dibs useful with a single agent? Yes, in a reduced role: lessons provide persistent knowledge across sessions, and the journal provides an audit trail of what was claimed and when.

Why not git lfs locks or lock files committed to the repository? LFS locks require a server and do not expire; committed lock files create commit noise and are invisible to uncommitted worktrees. Neither supports glob patterns or communicates context to the blocked agent.

Roadmap

  • dibs tui — live terminal dashboard of agents and claims

  • dibs claim --wait — block until a lease becomes free

  • npm wrapper package for npx dibs and MCP registry listing

  • Cross-machine coordination backend (opt-in)

  • Cursor and OpenCode enforcement recipes

Contributing

Contributions are welcome. The project intentionally stays small: stdlib plus three dependencies, no daemons, no databases. See CONTRIBUTING.md for guidelines and docs/protocol.md for the full coordination protocol.

License

MIT © 2026 polymatx

Available Tools

8 tools
dibs_checkA

Check whether files are claimed by another agent. FREE means safe to edit; HELD tells you who has them and until when.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesrepo-relative file paths to check against other agents' active claims

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explains that the tool returns FREE or HELD, and that HELD includes ownership and expiry information. This is sufficient for a read-only check operation, though it could have noted absence of side effects or edge cases.

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?

The description is two sentences, compact, and front-loaded with the primary action. Every word contributes meaning, including the concise explanation of return values.

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 simple check tool with one parameter and no output schema, the description covers the essential behavior: what it checks, what the result means, and how to interpret the output. It does not discuss error cases, but that is not critical given the tool's simplicity and clear parameter definition.

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 baseline is 3. The description does not add additional semantics beyond the schema's 'repo-relative file paths', but it does reinforce the purpose by linking paths to claims. No new parameter-level detail is provided.

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?

The description uses a specific verb ('Check') and resource ('files claimed by another agent'), clearly stating the tool's purpose. It also explains the meaning of outcomes (FREE, HELD), distinguishing it from sibling tools like dibs_claim and dibs_release.

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?

The description implies when to use it: before editing files to ensure they are not claimed by another agent. It does not explicitly exclude alternatives or mention dibs_status, but the usage context is clear from the FREE/HELD explanation.

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

dibs_claimA

Claim files or glob patterns before editing them, so parallel agents don't collide. Returns GRANTED with an expiry, or DENIED with who holds the files, why, and until when. Re-claiming the same patterns renews your lease.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlNohow long you need the claim, as a Go duration like 30m or 2h (default 30m); it auto-expires
reasonNoshort human-readable description of what you are doing, shown to other agents
patternsYesfiles or globs to claim, relative to the repo root, e.g. src/auth/** or cmd/main.go

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explains the possible outcomes (GRANTED with expiry, DENIED with holder details) and the renewal behavior, which is significant and helpful. It does not mention any caveats like permissions or side effects, but the core behavior is transparent.

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?

The description is three concise sentences with no redundancy. The first sentence states the core purpose, the second covers return values, and the third explains renewal. It is well-structured and front-loaded with the most important information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a lease tool: it covers the purpose, the return values (compensating for the lack of an output schema), and the key behavior of renewal. All parameters are fully documented in the schema. The description integrates well with sibling tools without needing to reference them for this tool's usage.

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?

The input schema already provides 100% documentation for all parameters (ttl, reason, patterns), including types and examples. The description adds minimal parameter-specific meaning beyond what the schema states; it only reiterates glob patterns and renewal behavior. Baseline of 3 is appropriate because the schema does the heavy lifting.

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?

The description clearly states the tool's purpose: 'Claim files or glob patterns before editing them, so parallel agents don't collide.' This uses a specific verb (claim), a resource (files/glob patterns), and explains the intended use, which distinguishes it from sibling tools like dibs_release and dibs_status.

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?

The description specifies when to use the tool: 'before editing them' and for avoiding collisions among parallel agents. However, it does not explicitly mention alternative tools or exclusions, so it falls short of the 'when-not-to-use' criterion. The context is clear but not exhaustive.

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

dibs_lesson_addA

Save a lesson for future agents as a markdown file under .dibs/lessons/ (committed with the repo, shared via git). Record gotchas, conventions, and hard-won fixes — not routine work logs.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesthe lesson itself: the gotcha, the fix, the context a future agent needs
tagsNooptional topic tags like auth, migrations, ci
titleYesone-line summary of the lesson, e.g. 'rate-limit middleware must register after auth'

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the file location, git sharing mechanism, and the type of content. It does not mention overwrite behavior or auto-commit details, but the core side effect (writing a markdown file) is clear.

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 focused sentences with no filler. The first sentence front-loads the action and destination, and the second sets content boundaries. Every word 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?

For a simple add-tool with no output schema, the description covers purpose, storage location, and content policy. It is sufficient for an agent to invoke correctly, though it could mention potential file overwrite or naming behavior.

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 covers all three parameters with descriptions, so the baseline is 3. The description adds context about the body's content (gotchas, conventions, fixes) but does not provide parameter-level syntax beyond the schema.

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?

The description clearly states the tool saves a lesson as a markdown file under .dibs/lessons/, with a specific verb ('Save') and resource. It distinguishes from sibling tools like lesson_search and notes by focusing on persistent, git-shared lessons.

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?

Provides explicit when-not guidance ('not routine work logs') and describes the appropriate content ('gotchas, conventions, hard-won fixes'). It does not name alternative tools, but the exclusion helps agents decide when this tool is appropriate.

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

dibs_noteA

Broadcast a short note to every agent working on this repo. Use it for handoffs and heads-ups that affect others.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesshort broadcast message for other agents, e.g. 'renamed User.ID to User.UUID — regenerate mocks'

TDQS

A4/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 of behavioral disclosure. It states that the note is broadcast to all agents, but does not mention whether the note is stored, persisted, or how it relates to the sibling dibs_notes tool. This leaves some behavioral aspects ambiguous.

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?

The description is two sentences, front-loaded with the action and followed by usage context. No unnecessary words or redundancy.

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 low-complexity tool with a single parameter and no output schema, the description adequately explains the purpose and usage. The only gap is that it doesn't clarify the relationship with the related dibs_notes tool, but this is a minor omission.

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?

The input schema already provides 100% coverage for the 'message' parameter, including an example. The tool description adds no additional parameter-level semantics, so it receives the baseline score of 3.

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?

The description uses the specific verb 'broadcast' with a clear resource ('a short note') and target ('every agent working on this repo'), making the tool's function unambiguous. It also distinguishes from sibling tools like dibs_notes by focusing on sending rather than reading.

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?

The description provides clear context for when to use the tool: 'for handoffs and heads-ups that affect others.' However, it does not explicitly name alternatives or state when not to use it, so it falls 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.

dibs_notesA

Read notes from other agents (marks them read). Check at the start of a session and before starting new work.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/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. It discloses the side effect (marks notes read) and timing, but does not explain return format, whether it filters to unread notes, or what happens if there are no notes. Adequate but incomplete.

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, no filler. The first sentence states the core function and side effect; the second gives concrete usage guidance. Information is front-loaded and every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no output schema, the description covers what and when, but not the return value or behavior on subsequent reads. It leaves ambiguity about whether already-read notes are returned. Sufficient for basic use but not fully complete.

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 has zero parameters, so the schema provides full coverage. The baseline is 4 per the rubric; the description adds no parameter confusion and correctly omits parameter details.

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?

Description clearly states it reads notes from other agents and marks them read, distinguishing it from sibling tools like dibs_note (which presumably writes notes). The verb and resource are specific and unambiguous.

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 provides when to use the tool: at the start of a session and before starting new work. It does not explicitly mention alternatives or when not to use it, but the timing guidance is clear.

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

dibs_releaseA

Release your claims when you finish working on an area, so other agents can proceed. Leases also expire on their own.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNorelease every lease you hold
patternsNopatterns to release (as originally claimed); omit and set all=true to release everything you hold

TDQS

A4/5.0
Behavior3/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. It discloses a behavioral trait beyond the schema: 'Leases also expire on their own.' However, it does not mention whether release is reversible, requires ownership, or what the response looks like, leaving partial 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 short sentences, front-loaded with the action and followed by a useful behavioral note. No wasted words.

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 simple release tool with no output schema and optional parameters, the description plus schema is adequate. It explains when to use, the auto-expiry behavior, and the schema covers parameter semantics. It could mention the distinction between all and patterns, but that is already in the schema, making it reasonably 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?

The schema already provides full descriptions for both parameters ('all' and 'patterns'), with 100% coverage. The description adds little to parameter meaning, only reinforcing that claims being released are the agent's own. Baseline of 3 is appropriate.

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?

The description uses the verb 'Release' with the resource 'your claims', clearly indicating the tool's function. It distinguishes from sibling tools like dibs_claim and dibs_status by describing the act of releasing, not checking or claiming.

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 explicitly states when to use ('when you finish working on an area') and the benefit ('so other agents can proceed'). It does not explicitly list alternatives or when-not-to-use, but the context is clear enough that an agent would know to use this after claiming.

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

dibs_statusA

See the whole picture: active agents on this repo, every live claim with expiry, and your unread note count. Call this at the start of a session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It clearly implies a read-only status view by saying 'See the whole picture' and specifies exactly what information is displayed. While it doesn't explicitly state 'no side effects,' the observational nature and session-start recommendation make the behavior predictable.

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, front-loaded sentence that efficiently conveys purpose, content, and usage timing. Every phrase contributes meaning with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is complete: it tells what information will be shown and when to call it. Additional details are unnecessary for this simple status tool.

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 input schema has zero parameters (100% coverage), so the baseline is 4 per the rubric. The description adds value by explaining what the no-parameter tool returns, which goes beyond the empty schema.

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?

The description clearly states what the tool does: it provides a status overview showing active agents, live claims with expiry, and unread note count. The verb 'See' plus the listed content makes the purpose unmistakable and distinguishes it from sibling tools like dibs_claim or dibs_release.

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?

The instruction 'Call this at the start of a session' provides explicit timing guidance. It lacks explicit exclusions or alternative tools, but the directive is unambiguous and actionable.

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. Dates show when Glama detected each change.

  1. 8 tool updates
    • First observeddibs_check
    • First observeddibs_claim
    • First observeddibs_lesson_add
    • First observeddibs_lesson_search
    • First observeddibs_note
    • First observeddibs_notes
    • First observeddibs_release
    • First observeddibs_status

TDQS

A4.3/5.0
Disambiguation5/5

Each tool addresses a distinct coordination task—claim management, status overview, lessons, and notes—with no overlap. An agent can easily tell which tool to use for claiming, checking, releasing, or communicating.

Naming Consistency4/5

All tools share the 'dibs_' prefix and use snake_case, but 'dibs_status' and 'dibs_notes' are nouns while most others are verbs (release, check, claim, etc.). This minor inconsistency is easy to overlook given the clear prefix and short names.

Tool Count5/5

With 8 tools, the server is well-scoped for its purpose: 4 for claim/status management, 2 for lessons, and 2 for notes. Each tool earns its place without redundancy or bloat.

Completeness5/5

The tool surface fully covers the coordination domain: claim, release, check, status, lesson add/search, and note broadcast/read. There are no obvious missing operations—manual expiry is unnecessary because leases auto-expire, and release complements claim.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A coordination layer for coding agents that provides memorable identities, inbox/outbox messaging, searchable message history, and file lease management to prevent conflicts. Uses Git for human-auditable artifacts and SQLite for fast queries, enabling multiple agents to collaborate across projects without stepping on each other.
    2,128
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A lightweight coordination layer for multiple AI agents working on the same codebase, providing check-in and check-out tools via STDIO or Streamable HTTP.
    167
    1
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Local-first shared memory and task coordination for AI coding agents. One Go binary, MCP server, markdown files you own. Hooks for Claude Code and Codex CLI (and their desktop apps).
    30
    4
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/polymatx/dibs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server