CollabMCP
Click on "Install 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., "@CollabMCPWho owns the files in src/models/?"
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.
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 |
| At the start of a session — who's active, recent decisions, your scope, unread messages |
| Before editing a file that might belong to a teammate |
| Before a big decision — has this already been settled? |
| After an architectural decision or non-obvious fix |
| 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 everywhereAfter 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 thecollab-mcp/npx collab-mcpcommand 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 statusHow 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_ownsmatches a path against each dev'sscopeglobs (viaminimatch) and any active lock.recallis keyword-overlap search overdecisions.jsonl— simple, fast, no embeddings.A file watcher regenerates the
CLAUDE.mdblock within ~150ms of any state change.Writes to
state.jsonare 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 toolsbroadcastBroadcast to teamA
Send a message to every active teammate — breaking changes, interface changes, or coordination requests.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message for the team | |
| urgency | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What you want to know about |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The decision in natural language | |
| scope | Yes | Path or module it applies to, e.g. /auth | |
| tags | No | Optional tags for search |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File or directory path, e.g. /auth/jwt.ts |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v0.1.0- First observed
broadcast - First observed
get_session - First observed
recall - First observed
remember - First observed
who_owns
TDQS
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 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.
With 5 tools covering communication, session management, knowledge base, and ownership, the count is well-scoped for a team collaboration server.
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
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
Shared memory for coding agents. Stop re-explaining your codebase every session.
- OneLoreOAuthai.onelore
Shared project context for AI agents and teams: docs, tasks, and messages that stay current.
Project memory, semantic code search, and grounded agent context.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
Related MCP Servers
- AlicenseAqualityAmaintenanceProvides agent coordination for Claude Code through a shared blackboard, decision tracking with rationale, and local semantic search over git-trackable JSONL files. It enables users to assemble tailored context packages and manage a lightweight knowledge graph for complex development tasks.153767MIT
- AlicenseNot gradedqualityBmaintenanceProvides Claude with persistent, semantic knowledge of a codebase across sessions by maintaining a local knowledge base of structural maps, compressed file summaries, and insights.71MIT
- AlicenseNot gradedqualityDmaintenanceShared context for multiple Claude Code sessions working on the same project.MIT
- AlicenseNot gradedqualityCmaintenanceProvides persistent codebase memory for Claude Code, enabling semantic understanding of the project structure and action history across sessions to reduce redundant file reads.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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