Skip to main content
Glama

CollabMCP

Shared, real-time context for every Claude Code on your team — scope awareness, prior decisions, and anti-overlap. No database, no server to host. Just files in your repo.

When two people point Claude Code at the same repo, the agents have no idea the other exists. CollabMCP fixes that: it's a local MCP server that gives each agent a shared view of who's working on what, what's already been decided, and whether a file is "owned" by someone else right now.

Everything lives in a .collab/ directory in your repo — plain JSON and a JSONL log. No Postgres, no Redis, no embeddings.

What you get

Five tools, available to Claude Code automatically:

Tool

When Claude uses it

get_session

At the start of a session — who's active, recent decisions, your scope, unread messages

who_owns(path)

Before editing a file that might belong to a teammate

recall(query)

Before a big decision — has this already been settled?

remember(content, scope)

After an architectural decision or non-obvious fix

broadcast(message, urgency)

To warn the team about a breaking change

Plus a dynamic CLAUDE.md: a <!-- COLLAB --> block at the top of your CLAUDE.md that regenerates automatically as the team's state changes, so every agent reads the latest context.

Related MCP server: xtage

Install

CollabMCP is distributed from source (not on npm). Install it once, globally:

git clone https://github.com/BautistaPessagno/collab-mcp.git
cd collab-mcp
npm install
npm run build
npm link        # makes the `collab-mcp` command available everywhere

After npm link, collab-mcp and npx collab-mcp both resolve to your local build.

Quickstart (5 steps)

Prerequisite: do the Install step once on your machine (clone + build + npm link). That's what makes the collab-mcp / npx collab-mcp command resolve — the package is not on npm.

# 1. In your project repo, initialize CollabMCP
npx collab-mcp init

# 2. Set your identity and scope
#    Edit .claude/collab.json: set "dev_id" and the "scope" globs you own
#    e.g. "dev_id": "bautista", "scope": ["/auth/**", "/middleware/**"]

# 3. Restart Claude Code so it loads the MCP server from .claude/mcp.json

# 4. Commit the shared state so teammates get it
git add .collab/state.json .collab/decisions.jsonl .claude/ CLAUDE.md
git commit -m "Add CollabMCP"

# 5. Each teammate does the Install step once (clone + build + npm link),
#    then in this repo runs `npx collab-mcp init`, sets their own
#    dev_id/scope, and restarts Claude Code. Done.

Check the team state from the terminal any time:

npx collab-mcp status

How it works

.collab/
├── state.json        # active devs, their scope, current task   (committed)
├── decisions.jsonl   # append-only log of decisions             (committed)
├── locks/            # short-lived path locks                   (gitignored)
└── inbox/            # per-dev broadcast messages               (gitignored)
  • who_owns matches a path against each dev's scope globs (via minimatch) and any active lock.

  • recall is keyword-overlap search over decisions.jsonl — simple, fast, no embeddings.

  • A file watcher regenerates the CLAUDE.md block within ~150ms of any state change.

  • Writes to state.json are atomic (temp file + rename), so concurrent devs don't corrupt it.

Config (.claude/collab.json)

{
  "server": "local",
  "collab_dir": ".collab",
  "dev_id": "bautista",
  "scope": ["/auth/**", "/middleware/**"],
  "lock_ttl_minutes": 30
}

Not in the MVP

Vector search, web dashboard, auth, Postgres/Redis, multi-repo. The data model is intentionally just files — see the roadmap in collab_mvp_plan.md.

License

MIT

Available Tools

5 tools
broadcastBroadcast to teamA

Send a message to every active teammate — breaking changes, interface changes, or coordination requests.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesMessage for the team
urgencyNo

TDQS

A3.9/5.0
Behavior3/5

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

The description implies a write operation that sends to all active teammates. It lacks details on whether there are restrictions (e.g., permission requirements, rate limits) or what happens if no teammates are active. With no annotations, more behavioral context would be helpful.

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 a single sentence that is front-loaded with the core purpose and includes examples. 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?

Given the tool has only two parameters and no output schema or annotations, the description covers the main purpose and provides useful context for the message. It could briefly mention the urgency parameter's impact or recipient behavior, but overall is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (only 'message' has a description; 'urgency' does not). The description adds context for the message parameter via examples but does not explain the urgency parameter or its enum values beyond what the schema provides. It partially compensates but not fully.

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 action (send), the resource (message to every active teammate), and provides concrete examples of use cases (breaking changes, interface changes, coordination requests). This distinguishes it from sibling tools like get_session or recall.

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 gives clear context by listing appropriate use cases (breaking changes, interface changes, coordination requests). However, it does not explicitly state when not to use it or mention alternatives, though sibling tools are unrelated.

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

get_sessionGet team sessionA

Snapshot of the team's shared context: your scope, who else is active, recent decisions, active locks, and any inbox messages. Call this at the start of every session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Describes the snapshot's contents in detail, implying a read-only operation with no side effects. However, it does not explicitly state it is non-destructive or mention authorization requirements, which would improve transparency given no annotations.

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 wasted words. The first defines the tool's output, the second advises when to use it. Perfectly front-loaded and succinct.

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?

Provides sufficient detail about what the snapshot includes and when to call it. Given no output schema, it covers the return value well. Could mention if it requires authentication or if it returns only current data, but it remains complete for the tool's purpose.

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?

No parameters exist in the schema, so the description naturally cannot add parameter details. With 100% schema coverage and zero params, a baseline of 4 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 clearly defines the tool as a snapshot of team shared context, listing specific components (scope, active users, decisions, locks, inbox messages). It distinguishes from siblings like broadcast or recall which handle messaging or storing information.

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 advises 'Call this at the start of every session,' providing clear usage context. Lacks exclusion criteria or alternative suggestions but adequately guides when to use.

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

recallRecall decisionsB

Search prior team decisions before making an important choice, to check if something was already resolved.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat you want to know about

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'search' implying a read-only operation, but offers no details about return format, limits, or potential side effects. Behavioral traits are minimally disclosed.

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 a single, concise sentence (16 words) that front-loads the purpose. Every word is necessary; no fluff or redundancy.

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?

Given the simplicity (1 param, no output schema, no annotations), the description is adequate but not complete. It would benefit from indicating what the tool returns or how it differs from 'remember'. Lacks supplementary detail that annotations could provide.

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 parameter 'query' with a generic description. The tool description adds 'prior team decisions' context, but this is marginal. With high schema coverage, baseline 3 is appropriate.

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 uses specific verb 'search' and resource 'prior team decisions', clearly indicating the tool's purpose. It adds context about when to use it ('before making an important choice') but does not explicitly differentiate from the sibling 'remember', which may have overlapping functionality.

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?

The description implies usage context ('before making an important choice') but provides no explicit guidance on when not to use this tool or alternatives among siblings. No exclusions or comparisons are made.

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

rememberRemember a decisionA

Record an architectural decision, a non-obvious bug fix, or anything teammates should know. Append-only and shared with the team.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe decision in natural language
scopeYesPath or module it applies to, e.g. /auth
tagsNoOptional tags for search

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 discloses two key behaviors: it is append-only and shared with the team. This gives agents a good understanding of side effects. Could be improved by noting it is persistent and irreversible, but the info provided is sufficient.

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 concise sentences that front-load purpose and include behavioral constraints. No unnecessary words or repetition. Every sentence adds value.

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?

Given the tool's simplicity (3 params, no output schema), the description covers the essential purpose and behavior. It could mention that tags are optional (implied by schema) or that content is natural language, but overall it's adequate for the agent to use 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%, so baseline is 3. Description does not add any additional parameter meaning beyond the schema definitions. No elaboration on approved values, formatting, or relationships between params.

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 the tool records architectural decisions, bug fixes, or team knowledge. It uses specific verb 'record' and resource 'decision', and distinguishes from siblings like broadcast or recall by specifying it's for persistent, append-only knowledge sharing.

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 clear context on when to use (recording decisions/knowledge) but does not explicitly list alternatives or when not to use. However, the examples and 'append-only shared' imply it's for permanent recording, not transient communication.

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

who_ownsWho owns a pathA

Check whether a file or directory belongs to another dev's scope before editing it. Returns the owner and whether you can proceed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile or directory path, e.g. /auth/jwt.ts

TDQS

A4/5.0
Behavior3/5

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

The description indicates it returns the owner and whether the user can proceed, which are behavioral traits. However, it lacks details such as what happens if the path does not exist, whether it performs any side effects, or any authentication requirements. With no annotations, the description carries full burden and is somewhat minimal.

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 a single concise sentence that front-loads the purpose and outcome. Every word adds value, with no redundancy or unnecessary elaboration.

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 read-only tool with one parameter and no output schema, the description covers the essential purpose and return values. It could mention edge cases like non-existent paths, but overall it is sufficiently complete for an agent to understand when and how to use it.

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 has one parameter 'path' with 100% description coverage, including an example. The tool description does not add extra parameter information beyond what the schema already provides, so it meets the baseline but does not enhance understanding.

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 explicitly states the tool's purpose: checking if a path belongs to another dev's scope before editing. The verb 'check' and resource 'ownership' are specific, and the tool is clearly distinct from sibling tools like 'broadcast' or 'remember'.

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 usage guidance: use this tool before editing a file or directory. It implies when to use it, but does not explicitly state when not to use it or mention alternatives. Given the simple context, this is adequate.

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. 5 tool updatesv0.1.0
    • First observedbroadcast
    • First observedget_session
    • First observedrecall
    • First observedremember
    • First observedwho_owns

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: broadcast for messaging, get_session for context snapshot, recall for reading past decisions, remember for writing decisions, who_owns for ownership queries. No overlap.

Naming Consistency3/5

Naming is mixed: 'broadcast', 'recall', 'remember' are single verbs; 'get_session' is verb_noun; 'who_owns' is a question. No consistent pattern, though all are readable.

Tool Count5/5

With 5 tools covering communication, session management, knowledge base, and ownership, the count is well-scoped for a team collaboration server.

Completeness4/5

Covers key collaboration features (messaging, context, decisions, ownership). Minor gap: no explicit lock acquisition/release tool, but get_session and who_owns may suffice.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/BautistaPessagno/collab-mcp'

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