Skip to main content
Glama

Server Details

Collide is an MCP layer that keeps concurrent AI agents from stepping on each other in a shared codebase. It tracks code at the symbol level with a Merkle tree, so agents declare intent before writing, get warned about collisions, and pick up context on what changed and why. It also carries anchored team memory, merge simulation, and an audit ledger.

Ownership verified
Status
Healthy
Uptime
55.5% over 22 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct aspect of the multi-agent coding workflow: briefing, symbol facts, dependents, history, intent registration, number reservation, deferred tripwires, messaging, notes, and setup. Descriptions explicitly cross-reference alternatives (e.g., 'use blast_radius for who depends on it', 'for Claude Code use setup'), leaving no overlapping purposes.

Naming Consistency4/5

All names use snake_case, and the majority follow a verb_noun pattern (get_briefing, declare_intent, send_agent_message). A few are single verbs (claim, recall, remember) or nouns (blast_radius, setup, recap), a minor deviation but still readable and predictable enough.

Tool Count4/5

15 tools is at the upper bound of the ideal 3–15 range, but each addresses a distinct coordination need (setup, context, intents, messaging, reconciliation, knowledge). Not excessive for the scope, though slightly heavy.

Completeness4/5

The surface covers onboarding, context retrieval, change registration, conflict prediction, reconciliation, messaging, notes, and session recap. Minor gaps: no explicit tool to complete or dismiss an intent, and no direct listing of all active intents, but agents can work around these via briefings and hooks.

Available Tools

15 tools
blast_radiusA
Read-only
Inspect

Before renaming, changing a signature or deleting: every symbol that depends on this one, level by level, with each dependent's file, owner and any in-flight work over it. Answers "what breaks if I change this" from the live code graph instead of a repo-wide grep; skip it when the briefing's Coverage line says every dependent is already listed. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRepo-relative file path of the symbol.
depthNoHow many hops of dependents to follow, 1 to 6 (default 3).
symbolNoThe symbol whose dependents to list; omit for the whole file.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the trailing 'Read-only' is largely redundant. What the description does add is behavioral context the annotations cannot: results come from the live code graph rather than a static grep, and each dependent is returned with file, owner and in-flight work. It still says nothing about cost, latency or auth requirements for a potentially deep traversal.

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

Conciseness4/5

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

Front-loads the trigger conditions, then the payload, then the skip rule, in three dense clauses with essentially no filler. The only waste is the trailing 'Read-only', which repeats the readOnlyHint annotation.

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 read-only graph query with no output schema, the description carries exactly the missing information: what is returned (dependents by level with file, owner and in-flight work), how it differs from manual grep, and when the result would be redundant. Nothing needed to decide to call it is absent.

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 every parameter (repo_id, path, symbol, depth) is already documented in the schema. The description's 'level by level' loosely mirrors the depth parameter but adds no format or constraint detail, so the baseline of 3 applies.

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

Purpose5/5

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

States a concrete analysis operation (all dependents of a symbol, level by level) and frames it as the answer to 'what breaks if I change this'. It is clearly distinguishable from siblings like get_symbol, explain_code and get_briefing, and it even names the alternative approach it replaces (repo-wide grep).

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

Usage Guidelines5/5

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

Names the triggering situations explicitly (before renaming, changing a signature, or deleting) and gives an explicit skip condition tied to a sibling's output ('skip it when the briefing's Coverage line says every dependent is already listed'). That is both when-to-use and when-not-to-use guidance.

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

claimAInspect

Reserve the next number in a sequence (a migration, an ADR, a release) so no other agent takes it; two agents asking at once never get the same number. The hooks already claim a numbered file's number when you create it, so call this only for a number you need before writing, or for a named sequence. Returns the number, zero-padded like the files already there.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterNoThe highest number you already see in use in that directory, if any.
titleNoWhat the number is for; teammates see it.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).
sequenceYesA directory such as db/migrations/, or a name such as release.

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (which only say it is a non-read-only, non-destructive, non-open-world write), it discloses key behavioral traits: the concurrency guarantee ('two agents asking at once never get the same number'), the overlap with hook-driven auto-claiming, and the return format ('zero-padded like the files already there'). This is exactly the kind of context annotations cannot provide.

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?

Three sentences, tightly packed, with the core action front-loaded and the caveat/exception following immediately. Every clause carries information the agent needs; nothing is padding.

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?

With no output schema, the description compensates by describing the return value (the zero-padded number). Combined with the concurrency guarantee and the hook-overlap warning, an agent has everything needed to call this correctly, and the 4-param schema is fully self-documented.

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 all four parameters are already documented in the schema, which sets the baseline at 3. The description's mention of 'a named sequence' versus numbered directories loosely mirrors the sequence parameter's dual meaning, but adds no syntax, format, or default information 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 states a precise verb+resource ('Reserve the next number in a sequence') and enumerates concrete sequence kinds (a migration, an ADR, a release), so the agent knows exactly what operation this performs. No sibling tool (declare_intent, remember, recall, etc.) overlaps with this behavior, so there is no ambiguity to disambiguate against.

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

Usage Guidelines5/5

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

It gives both a when-to-use and an explicit when-not-to-use: the hooks already claim a numbered file's number on creation, so only call this 'for a number you need before writing, or for a named sequence.' That is an unusually clear routing rule for an agent deciding between this and simply creating the file.

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

connect_agentsAInspect

Set up Collide for the other agent tools a team runs in this repo (Codex, Cursor, Windsurf, Cline, GitHub Copilot): their rules files, hook configs and MCP configs, plus your credential. For Claude Code use setup. Returns repo files to write and commit, user files to install, and copy-paste snippets.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare write (readOnlyHint=false), non-destructive, and closed-world, so the description adds context beyond them: it enumerates the artifacts touched (rules files, hook configs, MCP configs) and notes it also handles a credential. It stops short of stating side effects like whether existing files are overwritten, so not quite a 5.

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, front-loaded with the action and target set, followed by the sibling routing and the return shape. No filler; each clause carries 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?

With no output schema, the description compensates by describing the return values (repo files to write/commit, user files to install, copy-paste snippets). For a single-param setup tool with annotations covering safety, nothing needed to call it correctly is missing.

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?

Only one parameter and schema description coverage is 100%, so the schema already fully documents repo_id including the config.json reference. The description adds no parameter-level detail, making the baseline 3 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?

States a specific verb ("Set up Collide") and resource, and enumerates exactly which agent tools it targets (Codex, Cursor, Windsurf, Cline, GitHub Copilot). It also explicitly distinguishes itself from the sibling 'setup' ("For Claude Code use setup"), so an agent can route between the two without opening either schema.

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

Usage Guidelines5/5

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

Explicitly names the condition that selects this tool (non-Claude-Code agent tools in the repo) and names the alternative ('setup') for the Claude Code case. This is a clear when-to-use / when-to-use-something-else routing.

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

declare_intentAInspect

Register an in-flight change. PREFER typed operations: {op:"rename", symbol, new_name} | {op:"add_param", symbol, name, type?, default?} | {op:"remove_param", symbol, name} | {op:"change_return", symbol, type} | {op:"extract", symbol, new_name} | {op:"move", symbol, new_path} | {op:"delete", symbol} | {op:"add", symbol} | {op:"modify", symbol}. Typed intents get conflict prediction against other live intents (intent_conflicts: COMMUTE / CONFLICT / UNKNOWN). ref links an issue or PR. TTL 15 minutes; extend with heartbeat. With the native hook installed, collide-hook apply (JSON op or list on stdin) performs rename / add_param / remove_param / pass_arg on this checkout — definition and every call site — verified with the repo's check, declared as one intent, reported, completed.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoAn issue or pull request this work belongs to.
afterNoThe signature or name after it.
pathsYesFiles the change will touch.
beforeNoThe signature or name before the change.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).
summaryNoOne line on what you are about to do.
symbolsNoSymbols the change will touch.
operationsNoTyped operations, e.g. {op: "rename", symbol, new_name}.
change_typeNoLegacy prose kind of change; prefer operations.
idempotency_keyNoAny string; a retry with the same key declares once.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), so the bar is lower and the description adds real context: a 15-minute TTL with heartbeat extension, conflict outcomes (COMMUTE/CONFLICT/UNKNOWN), and hook-triggered side effects on definition and call sites. What it omits is what registering actually does to other agents' intents (blocking, visibility) and what success returns.

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

Conciseness4/5

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

Front-loaded with the core action, then the operation grammar, then the hook behavior — a sensible order with minimal filler. The hook sentence is long and clause-stacked, but each clause carries distinct information (which ops, scope, verification, reporting), so little is wasted.

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 10-parameter mutation tool with no output schema and no annotations beyond the safety hints, the description covers TTL, conflict semantics, retry idempotency, and the optional hook workflow. It stops short of stating the return payload or what the caller should do after a CONFLICT/UNKNOWN result, which is the remaining actionable gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: it enumerates all eight typed operations with their field shapes (rename/symbol/new_name, add_param/name/type/default, extract, move, delete, add, modify), whereas the schema only shows one example. It also explains ref (issue/PR link), TTL, and idempotency-driven retry behavior in prose.

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?

Opens with a specific verb+resource: 'Register an in-flight change', then clarifies the mechanism (typed operations, conflict prediction, TTL). An agent can tell this is about declaring intent, not querying it. It never names or contrasts with siblings like claim, defer_intent, or pending_reconciliations, so it misses the top-tier sibling-differentiation bar.

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?

'PREFER typed operations' and the TTL/heartbeat note imply usage, and the hook paragraph states a concrete condition ('With the native hook installed'). However, there is no explicit when-to-use-vs-alternatives guidance (e.g., when to use claim or defer_intent instead), leaving routing between the 15 sibling tools to inference.

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

defer_intentAInspect

Leave work unfinished safely: a tripwire on paths or symbols that warns whoever next edits them (for example "webhooks in payments/ are half-done; finish them before changing this"). It fires once into their next tool result and briefing, and becomes a task in the team's CRM when one is connected. Returns the tripwire id and expiry.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesWhat is unfinished and what the next person should do.
pathsNoFiles whose next edit triggers the warning.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).
symbolsNoSymbol names whose next edit triggers it.
expires_daysNoDays until the tripwire expires (default 14).

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only cover the safety profile (not read-only, not destructive, open-world). The description goes further by disclosing key behavior: it fires exactly once into the next tool result and briefing, may create a CRM task, and returns the tripwire id and expiry. It stops short of covering permissions, expiry cleanup, or what happens on repeat calls.

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 tightly written sentences with the core mechanic front-loaded and the side effects (one-shot firing, CRM task, return values) packed efficiently into the second. No filler.

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

Completeness4/5

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

With no output schema, the description usefully states the return values (id and expiry) and the lifecycle behavior, which is the main thing an agent needs. Minor gaps remain around permissions and durability, but overall it is sufficient to invoke 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 description coverage is 100%, so the schema already documents all five parameters. The description reinforces that paths/symbols are the triggers and supplies an example note wording, but adds no syntax, format, or default detail beyond the schema, making the baseline 3 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?

States a concrete action (create a tripwire that warns the next editor of unfinished work) with the mechanism and effect made explicit. It is distinguishable from declare_intent or remember by describing a persistent, trigger-based warning, though it never names those siblings directly.

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 opening phrase "Leave work unfinished safely" implies the usage scenario, and the example clarifies intent. However, there is no explicit guidance on when to choose this over declare_intent, remember, or claim, nor any exclusions or prerequisites.

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

explain_codeA
Read-only
Inspect

Why the code is the way it is: the history behind a path or symbol, oldest first — each edit (who, when, what changed), completed intents with their rationales, reverted attempts and anchored notes. Use it before git blame or git log: it includes uncommitted work and the reasons given. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoFile to explain; with no symbol, the whole file.
symbolNoNarrow the history to one symbol.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description redundantly restates 'Read-only'. Its real added value is disclosing what the result contains — edits with author/time/change, completed intents with rationales, reverted attempts, anchored notes, and uncommitted work — which is beyond what annotations cover.

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

Conciseness4/5

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

Front-loaded with the core purpose, then the content inventory, then the routing rule and safety note in a single efficient paragraph. The colon-separated list is dense but every element earns its place; only the redundant 'Read-only' is wasted given the annotations.

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

Completeness4/5

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

With no output schema, the description usefully enumerates the kinds of records returned and the ordering, and it covers both path and symbol scoping. Safety and usage context are present, leaving little an agent would need that is absent.

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 all three parameters are already documented, and the description adds only the 'oldest first' ordering hint. No new syntax or format detail is supplied beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific deliverable — the history behind a path or symbol, oldest first, with who/when/what per edit — which is a concrete verb+resource. It distinguishes itself from git blame and git log by naming them explicitly, so an agent can route without opening the schema.

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

Usage Guidelines4/5

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

Gives an explicit use-before rule ('Use it before git blame or git log') and the reason (uncommitted work and stated reasons are included). It does not name any sibling MCP tool as an alternative or state when not to use it, so it stops short of full routing guidance.

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

get_briefingA
Read-only
Inspect

Start here for any coding task: the recent history of this repo — who changed what, renames to adapt to, hotspots, abandoned work and who is working right now. Where Collide's hooks are installed the same briefing already arrives in your context; call this when it did not. Pass path (and symbol) to also get the blast radius of what you are about to change. Read-only. Returns summary lines, changed modules with exact signatures, anchored notes and live agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow far back to look, in days (default 7).
pathNoOptional file to also compute the blast radius for.
depthNoHops of dependents to include with path (default 3).
symbolNoOptional symbol in path to narrow that blast radius.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint false, and the description adds real context beyond them: the hook-based delivery fallback, and a return shape ('summary lines, changed modules with exact signatures, anchored notes and live agents') that matters because there is no output schema. It doesn't cover latency, size limits, or failure modes, but it meaningfully exceeds the annotation baseline.

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

Conciseness4/5

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

The imperative 'Start here for any coding task' is front-loaded and the rest is dense, non-redundant information. It is a long single paragraph, but nearly every clause carries distinct content (contents, hook fallback, path behavior, read-only, return shape) rather than filler.

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

Completeness4/5

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

With no output schema, the description does the work of describing returns, and it covers trigger, fallback semantics, and the optional blast-radius path behavior. What's missing is minor: guidance on choosing days/depth and any note on cost of a wide or deep query.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds the causal link that path/symbol 'also' trigger blast-radius computation rather than just filtering, which the schema does not convey. Depth's role is left to the schema, but the path/symbol behavior is genuine added meaning.

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

Purpose5/5

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

It states a specific verb (get/generate a briefing) plus the exact resource content: 'the recent history of this repo — who changed what, renames to adapt to, hotspots, abandoned work and who is working right now.' The 'Start here for any coding task' opener and the enumerated contents distinguish it cleanly from siblings like recap, recall, and blast_radius.

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

Usage Guidelines4/5

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

It gives a clear trigger ('Start here for any coding task') and an explicit condition for calling it versus relying on ambient context ('Where Collide's hooks are installed the same briefing already arrives in your context; call this when it did not'). It also implies the blast_radius alternative ('Pass path ... to also get the blast radius') but never names that sibling explicitly, so routing is inferential rather than spelled out.

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

get_symbolA
Read-only
Inspect

Exact facts about code without opening the file: the signature, parameters, calls, span and hash of one symbol, or, omitting symbol, of every symbol in the module, with the notes anchored to it and whether the file passed the repo's check. Use it when a briefing lacks a fact; use blast_radius for who depends on it. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRepo-relative file path, e.g. src/auth.py.
symbolNoFunction, class or method name; omit for the whole module.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the trailing 'Read-only' adds nothing; credit comes from the disclosed default behavior when `symbol` is omitted (whole-module scan) and the explicit statement that it works without opening the file. Permission/rate-limit behavior is not covered, keeping this below a 5.

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

Conciseness4/5

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

Two dense sentences with no filler, and the payload description is front-loaded before the routing clause. The semicolon-heavy first sentence is information-rich but slightly hard to parse, which keeps it from a 5.

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

Completeness4/5

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

With no output schema, the description carries the burden of describing return content, and it does so (signature, params, calls, span, hash, notes, check status). Missing are error behavior for an unknown symbol/path and what the 'check' actually represents.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema itself already documents path, symbol (including 'omit for the whole module'), and repo_id. The description restates the omit-symbol default but adds no format, syntax, or constraint details beyond the schema, so baseline 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?

States a concrete verb+resource (facts about a symbol) and enumerates exactly what comes back: signature, parameters, calls, span, hash, notes, check status. It also distinguishes itself from siblings by naming blast_radius as the tool for a different question.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('use it when a briefing lacks a fact') and routes the agent elsewhere for the adjacent need ('use blast_radius for who depends on it'). The when-to-use condition and the named alternative are both present, leaving little to inference.

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

inbox_ackA
Idempotent
Inspect

Mark messages from teammates' agents as handled so they stop arriving: pass the ids from messages_pending once you have acted on them. Unacknowledged messages repeat on every response. Returns the messages still pending.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesMessage ids from messages_pending.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare non-readOnly, idempotent, non-destructive. The description goes beyond them by disclosing the side effect (messages stop arriving), the cost of omission (unacknowledged messages repeat on every response), and the return value (messages still pending). Adds real behavioral context.

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

Conciseness4/5

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

Three tight clauses, front-loading the purpose and effect before the how-to. Every sentence earns its place, though the trailing return-value sentence is slightly separable.

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 mutating tool with no output schema, the description covers the trigger, the effect, the repeat penalty, and the return value. Complete enough to call correctly; only the repo_id source is left entirely to the schema.

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 both ids and repo_id are already documented. The description's 'ids from messages_pending' largely restates the schema's own id description and adds no format/syntax detail. Baseline 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?

States a specific verb (Mark...as handled) and resource (messages from teammates' agents), and names the concrete effect (so they stop arriving). An agent can tell this apart from siblings like send_agent_message or recall without opening any schema.

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

Usage Guidelines4/5

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

Gives clear triggering condition: 'pass the ids from messages_pending once you have acted on them.' The repeat-on-every-response note reinforces when it must be called. No explicit when-not or named alternative, but the context is unambiguous.

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

pending_reconciliationsAInspect

When a response says two agents' work collides (reconciliations_pending): claim the open collisions, with both sides' intents, changed lines and notes, to merge them. Merge by keeping both sides' work; never by deleting either. After the merge passes the tests, call again with resolve=[id]. Returns the claimed reconciliations and how many stay open.

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).
resolveNoIds of reconciliations you have merged and verified.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation profile is partly covered, but the description adds meaningful behavior beyond them: the keep-both-sides merge rule, the explicit prohibition on deleting, and the two-phase claim-then-resolve flow. It does not describe what state persists or error conditions.

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

Conciseness4/5

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

Front-loaded with the trigger condition, then the action, merge rule, and second-call pattern, ending with return values. Dense but every clause carries instruction; no filler sentences.

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

Completeness4/5

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

No output schema exists, and the description compensates by stating what is returned (claimed reconciliations and remaining open count). The two-mode contract and merge constraint are covered; only edge cases and failure behavior are absent.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds operational meaning by showing resolve=[id] is only supplied on the second call after a verified merge, which the schema alone does not convey. repo_id semantics are left to its schema description.

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 names a specific resource (open reconciliations/collisions) and verb (claim, then resolve), and reveals that the tool has two modes rather than just listing pending items as its name suggests. It is clear what the tool does, though it doesn't explicitly contrast against sibling tools like claim or declare_intent.

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

Usage Guidelines5/5

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

It gives an explicit trigger (when a response reports reconciliations_pending), prescribes the merge policy (keep both sides, never delete either), and specifies the follow-up call (resolve=[id] after tests pass). Both invocation modes and their ordering are spelled out.

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

recallA
Read-only
Inspect

Search the team's saved notes (made with remember) by text and tags, newest first; an empty query returns the most recent. Use it before re-deciding something the team may already have settled. Read-only. Returns each note with its anchor, confidence and whether it may be stale.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoOnly notes carrying all of these tags.
limitNoMaximum notes to return (default 25).
queryNoText to find in the note; empty returns the most recent.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description reinforces 'Read-only' and adds genuinely new behavior: newest-first ordering, empty-query fallback to most recent, and that results carry anchor, confidence and staleness flags. It does not cover pagination beyond the limit parameter, so it is strong rather than exhaustive.

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 core action and its scoping/ordering rules are front-loaded in the first clause, followed by a short usage directive and the return-shape note. Every sentence earns its place with no 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?

There is no output schema, so the description takes on the burden of describing returns and does so (anchor, confidence, staleness). Combined with the usage cue and the empty-query fallback, an agent has everything needed to call and interpret this 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?

Schema description coverage is 100%, so the baseline is 3; the description adds value beyond the schema by stating the relevance/ordering model (newest first) and the empty-query behavior, and by clarifying that tags are conjunctive in prose. The repo_id and limit semantics remain schema-only, but that is already well documented there.

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

Purpose5/5

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

States a specific verb (search) and resource (the team's saved notes), plus filtering axes (text and tags) and ordering (newest first). It explicitly ties itself to the sibling tool that creates these notes ('made with remember'), so an agent can separate recall from remember without opening either schema.

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

Usage Guidelines4/5

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

Gives a concrete use condition: 'Use it before re-deciding something the team may already have settled,' and implicitly frames remember as the write counterpart. It stops short of naming explicit exclusions or other retrieval siblings (e.g. recap, get_briefing), so usage routing 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.

recapA
Read-only
Inspect

What each agent did in this repo, session by session: edits, lines, tokens, model, estimated cost, rationales and top paths. Use it to answer "what happened" or "what did this cost". Read-only. Returns one entry per session and a dashboard link.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoHow many days back, up to 90 (default 1).
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnly, non-destructive and closed-world, and the description's 'Read-only' merely restates that. The value-add is the return shape — one entry per session plus a dashboard link — which is real behavioral context given there is no output schema.

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?

Three tight sentences front-loaded with the payload contents, then the usage question, then the return shape. Nothing is padded, and the only slight redundancy is 'Read-only' against the annotation.

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

Completeness4/5

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

With no output schema, the description usefully sketches the return (one entry per session, dashboard link). It omits any mention of result volume or cost-estimation caveats, but for a two-parameter read tool it is close to sufficient.

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

Parameters3/5

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

Schema description coverage is 100%, with days and repo_id both documented in the schema itself, so the baseline is 3. The description adds no extra semantics for either parameter (e.g. the 90-day ceiling or repo_id format), so it neither compensates nor detracts.

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 names a specific resource set — per-session agent activity with edits, lines, tokens, model, cost, rationales and top paths — so the agent knows exactly what comes back. It does not, however, contrast itself with close siblings like recall or get_briefing, which is the missing element for a 5.

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

Usage Guidelines4/5

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

It gives clear triggering questions: 'what happened' or 'what did this cost'. That is a usable when-to-use signal, but there are no exclusions or named alternatives, so it stops short of full routing guidance.

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

rememberAInspect

Save a durable team fact: a decision, constraint or gotcha, not code state. Anchor facts about specific code (anchor="auth.py::validate_token", "auth.py" or "src/auth/"): anchored notes reach whoever touches that code and are marked stale when it is rewritten. Writes the note(s) and returns their ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
factNoThe note, one or two sentences.
tagsNoLabels to find it by with recall.
factsNoSeveral notes at once: [{fact, anchor?, tags?}].
anchorNoWhere it applies: path::symbol, a file, or dir/.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).
supersedesNoId of a note this one replaces; the old note is retired.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare a non-destructive write, and the description adds real behavioral context: anchored notes surface to whoever touches that code, get marked stale on rewrite, and supersedes retires the old note. That goes well beyond the safety hints, though nothing is said about rate limits or write conflicts.

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

Conciseness4/5

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

Three dense sentences, front-loaded with the core purpose and the key distinction from code state. Every clause carries information, though the anchoring detail is packed tightly enough to require a second read.

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 6-parameter write tool with no output schema, the description covers purpose, anchoring semantics, batching implication, and return value ('returns their ids'). Minor gaps remain around tag conventions and batch limits on facts.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains the operational consequence of anchor (reaching code touchers, staleness) and the retirement behavior of supersedes. The anchor form examples reinforce the schema's field syntax.

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

Purpose5/5

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

States a specific verb and resource ('Save a durable team fact') and sharply scopes the content ('a decision, constraint or gotcha, not code state'). The explicit exclusion of code state distinguishes it from retrieval siblings like recall and recap.

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?

Clear guidance on what to store and when to anchor ('facts about specific code'), with concrete anchor syntax examples. It does not explicitly name recall as the counterpart read tool, so the routing is implied rather than stated.

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

send_agent_messageAInspect

Send a message to teammates' agents. to = one account email; or anchor = the code it is about ("path.py::symbol", "path.py" or "dir/") with no to, which reaches whoever has an open intent on, or edited in the last day, that code or its callers. With an anchor the recipient also sees whether the code changed since you sent it and whether its tests have passed since. It arrives with their next tool result. Returns the message id and who received it.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoA teammate's account email; omit it when anchor is given.
anchorNoThe code the message is about: path.py::symbol, path.py, or dir/.
messageYesWhat you need them to do or know.
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.8/5.0
Behavior5/5

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

Annotations mark this as a non-destructive write, but the description adds delivery mechanics (arrives with their next tool result), recipient-side context (they see whether the code changed and whether tests passed since), and return values (message id and recipient). This is meaningful behavior far beyond the annotation set.

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

Conciseness4/5

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

Front-loads the two routing modes and keeps every clause informative, though the anchor sentence is dense enough that it takes a second read to parse the recipient-selection rule.

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?

With no output schema, the description covers return values, delivery timing, and both routing paths, so an agent has everything needed to call it correctly.

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?

Schema coverage is 100%, so baseline is 3, but the description adds real semantics beyond the schema: the anchor resolution rule (open intent or last-day edits, including callers) is not captured in the schema's terser 'path.py::symbol, path.py, or dir/' text.

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

Purpose5/5

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

States a specific verb (send) and resource (message to teammates' agents) and immediately disambiguates the two routing modes (to vs anchor). An agent can distinguish this from siblings like connect_agents or inbox_ack without opening the schema.

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

Usage Guidelines5/5

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

Explicitly defines the selection conditions: use `to` with one account email, or use `anchor` alone (no `to`) to reach whoever has an open intent on or recently edited the code or its callers. This is genuine when/how-to-use guidance, not implied.

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

setupAInspect

Set up Collide in this repo, once per repo. The answer usually has install.command: run it exactly as given at the repo root (it installs the pinned hook binary, writes the config, merges the settings and installs your credential), then commit what it stages. If the answer has files instead, write them and commit. Returns the command or the files, and what they install.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoenforce (default: the pre-write gate is on), advisory (reporting only), or files (skip the command and return the files).
repo_idYesThe repository id, e.g. github.com/org/repo (repo_id in .collide/config.json).

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false, openWorldHint=false; the description goes well beyond that, disclosing the side effects (installs the pinned hook binary, writes config, merges settings, installs credentials) and the follow-up obligation to commit what it stages. That is exactly the mutation context an agent needs.

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

Conciseness4/5

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

Three sentences, front-loaded with the core purpose and the once-per-repo constraint before the procedural detail. Dense but every sentence carries information; the parenthetical enumerating the command's effects is slightly packed but earned.

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

Completeness4/5

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

There is no output schema, and the description correctly covers what is returned ('the command or the files, and what they install'). Combined with annotations covering the safety profile, an agent has enough to call it correctly; only the already-configured case is unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, with repo_id and the enforce/advisory/files mode values already documented in the schema. The description reinforces the files path but adds no new syntax, format, or default semantics beyond what the schema provides, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: set up Collide in a repo, and adds the strong qualifier 'once per repo'. It also previews the two output shapes (a command vs files), so an agent knows what the call produces. It does not explicitly contrast with siblings, but none of them (blast_radius, claim, recall, etc.) overlap with setup.

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

Usage Guidelines4/5

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

Gives a clear invocation condition ('once per repo') and branching guidance: run install.command exactly as given at the repo root if present, otherwise write the returned files and commit. It does not spell out when setup should be skipped (e.g. already configured), so a small gap remains.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 31 tool updates
    • Changedblast_radius4 fields changed
      • addedInput schema / properties / depth / description
        Added value: +"How many hops of dependents to follow, 1 to 6 (default 3)."
      • addedInput schema / properties / path / description
        Added value: +"Repo-relative file path of the symbol."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / symbol / description
        Added value: +"The symbol whose dependents to list; omit for the whole file."
    • Removedblind_spots
    • Changedclaim4 fields changed
      • addedInput schema / properties / after / description
        Added value: +"The highest number you already see in use in that directory, if any."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / sequence / description
        Added value: +"A directory such as db/migrations/, or a name such as release."
      • addedInput schema / properties / title / description
        Added value: +"What the number is for; teammates see it."
    • Removedcompliance_report
    • Changedconnect_agents1 field changed
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
    • Changeddeclare_intent10 fields changed
      • addedInput schema / properties / after / description
        Added value: +"The signature or name after it."
      • addedInput schema / properties / before / description
        Added value: +"The signature or name before the change."
      • addedInput schema / properties / change_type / description
        Added value: +"Legacy prose kind of change; prefer operations."
      • addedInput schema / properties / idempotency_key / description
        Added value: +"Any string; a retry with the same key declares once."
      • addedInput schema / properties / operations / description
        Added value: +"Typed operations, e.g. {op: \"rename\", symbol, new_name}."
      • addedInput schema / properties / paths / description
        Added value: +"Files the change will touch."
      • addedInput schema / properties / ref / description
        Added value: +"An issue or pull request this work belongs to."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / summary / description
        Added value: +"One line on what you are about to do."
      • addedInput schema / properties / symbols / description
        Added value: +"Symbols the change will touch."
    • Changeddefer_intent5 fields changed
      • addedInput schema / properties / expires_days / description
        Added value: +"Days until the tripwire expires (default 14)."
      • addedInput schema / properties / note / description
        Added value: +"What is unfinished and what the next person should do."
      • addedInput schema / properties / paths / description
        Added value: +"Files whose next edit triggers the warning."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / symbols / description
        Added value: +"Symbol names whose next edit triggers it."
    • Removeddifferential_check
    • Changedexplain_code3 fields changed
      • addedInput schema / properties / path / description
        Added value: +"File to explain; with no symbol, the whole file."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / symbol / description
        Added value: +"Narrow the history to one symbol."
    • Changedget_briefing5 fields changed
      • addedInput schema / properties / days / description
        Added value: +"How far back to look, in days (default 7)."
      • addedInput schema / properties / depth / description
        Added value: +"Hops of dependents to include with path (default 3)."
      • addedInput schema / properties / path / description
        Added value: +"Optional file to also compute the blast radius for."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / symbol / description
        Added value: +"Optional symbol in path to narrow that blast radius."
    • Changedget_symbol3 fields changed
      • addedInput schema / properties / path / description
        Added value: +"Repo-relative file path, e.g. src/auth.py."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / symbol / description
        Added value: +"Function, class or method name; omit for the whole module."
    • Removedgraph_export
    • Removedgraph_import
    • Removedgraph_neighbors
    • Removedgraph_path
    • Changedinbox_ack2 fields changed
      • addedInput schema / properties / ids / description
        Added value: +"Message ids from messages_pending."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
    • Removedinstall_hooks
    • Removedlist_activity
    • Removedmove_repo
    • Removedopen_dashboard
    • Changedpending_reconciliations2 fields changed
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / resolve / description
        Added value: +"Ids of reconciliations you have merged and verified."
    • Removedplan_work
    • Changedrecall4 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum notes to return (default 25)."
      • addedInput schema / properties / query / description
        Added value: +"Text to find in the note; empty returns the most recent."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / tags / description
        Added value: +"Only notes carrying all of these tags."
    • Changedrecap2 fields changed
      • addedInput schema / properties / days / description
        Added value: +"How many days back, up to 90 (default 1)."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
    • Changedremember6 fields changed
      • addedInput schema / properties / anchor / description
        Added value: +"Where it applies: path::symbol, a file, or dir/."
      • addedInput schema / properties / fact / description
        Added value: +"The note, one or two sentences."
      • addedInput schema / properties / facts / description
        Added value: +"Several notes at once: [{fact, anchor?, tags?}]."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / supersedes / description
        Added value: +"Id of a note this one replaces; the old note is retired."
      • addedInput schema / properties / tags / description
        Added value: +"Labels to find it by with recall."
    • Removedremove_repo
    • Removedrepo_map
    • Changedsend_agent_message4 fields changed
      • addedInput schema / properties / anchor / description
        Added value: +"The code the message is about: path.py::symbol, path.py, or dir/."
      • addedInput schema / properties / message / description
        Added value: +"What you need them to do or know."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
      • addedInput schema / properties / to / description
        Added value: +"A teammate's account email; omit it when anchor is given."
    • Changedsetup2 fields changed
      • addedInput schema / properties / mode / description
        Added value: +"enforce (default: the pre-write gate is on), advisory (reporting only), or files (skip the command and return the files)."
      • addedInput schema / properties / repo_id / description
        Added value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
    • Removedsimulate_merge
    • Removedswitch_workspace
  2. 2 tool updates
    • Addedclaim
    • Changedsend_agent_message2 fields changed
      • addedInput schema / properties / anchor
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "to",
        -  "message"
        -]New value: +[
        +  "repo_id",
        +  "message"
        +]
  3. 1 tool update
    • Changedmove_repo2 fields changed
      • addedInput schema / properties / new_workspace
        Added value: +{
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "workspace"
        -]New value: +[
        +  "repo_id"
        +]
  4. 3 tool updates
    • Addedconnect_agents
    • Addedinstall_hooks
    • Addedsetup
  5. 1 tool update
    • Changedplan_work1 field changed
      • addedInput schema / properties / dispatch
        Added value: +{
        +  "description": "claim every run_now group now and queue the held ones for release",
        +  "type": "boolean"
        +}
  6. 2 tool updates
    • Changedget_symbol1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "path",
        -  "symbol"
        -]New value: +[
        +  "repo_id",
        +  "path"
        +]
    • Changedremember2 fields changed
      • addedInput schema / properties / facts
        Added value: +{
        +  "items": {
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "fact"
        -]New value: +[
        +  "repo_id"
        +]
  7. 9 tool updates
    • Removedcheck_collisions
    • Removedcomplete_intent
    • Removedconnect_agents
    • Changedget_briefing3 fields changed
      • addedInput schema / properties / depth
        Added value: +{
        +  "type": "integer"
        +}
      • addedInput schema / properties / path
        Added value: +{
        +  "type": "string"
        +}
      • addedInput schema / properties / symbol
        Added value: +{
        +  "type": "string"
        +}
    • Removedheartbeat
    • Removedinstall_hooks
    • Removedreport_edit
    • Removedsetup
    • Removedsync_agents_block
  8. 1 tool update
    • Addedplan_work
  9. 34 tool updates
    • Changedblast_radius10 fields changed
      • removedInput schema / properties / depth / default
        Removed value: -3
      • removedInput schema / properties / depth / title
        Removed value: -"Depth"
      • removedInput schema / properties / path / description
        Removed value: -"Repo-relative file path, e.g. src/app/api.py."
      • removedInput schema / properties / path / title
        Removed value: -"Path"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / symbol / default
        Removed value: -""
      • removedInput schema / properties / symbol / description
        Removed value: -"A symbol in the file — function, class, method, or constant name."
      • removedInput schema / properties / symbol / title
        Removed value: -"Symbol"
      • removedInput schema / title
        Removed value: -"blast_radiusArguments"
    • Changedblind_spots3 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"blind_spotsArguments"
    • Changedcheck_collisions15 fields changed
      • removedInput schema / properties / paths / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / paths / default
        Removed value: -null
      • removedInput schema / properties / paths / description
        Removed value: -"Repo-relative file paths this change will touch."
      • addedInput schema / properties / paths / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / paths / title
        Removed value: -"Paths"
      • addedInput schema / properties / paths / type
        Added value: +"array"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / symbols_referenced / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / symbols_referenced / default
        Removed value: -null
      • removedInput schema / properties / symbols_referenced / description
        Removed value: -"Symbol names your change depends on, for exact-match collision checking."
      • addedInput schema / properties / symbols_referenced / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / symbols_referenced / title
        Removed value: -"Symbols Referenced"
      • addedInput schema / properties / symbols_referenced / type
        Added value: +"array"
      • removedInput schema / title
        Removed value: -"check_collisionsArguments"
    • Changedcomplete_intent8 fields changed
      • removedInput schema / properties / intent_id / description
        Removed value: -"The id returned by declare_intent, identifying the intent to extend or complete."
      • removedInput schema / properties / intent_id / title
        Removed value: -"Intent Id"
      • removedInput schema / properties / rationale / default
        Removed value: -""
      • removedInput schema / properties / rationale / description
        Removed value: -"Why this change was made and what was rejected; anchored to the changed symbols."
      • removedInput schema / properties / rationale / title
        Removed value: -"Rationale"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"complete_intentArguments"
    • Changedcompliance_report6 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / since / default
        Removed value: -0
      • removedInput schema / properties / since / description
        Removed value: -"Unix timestamp; include only events after this time (0 = the full window)."
      • removedInput schema / properties / since / title
        Removed value: -"Since"
      • removedInput schema / title
        Removed value: -"compliance_reportArguments"
    • Changedconnect_agents3 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"connect_agentsArguments"
    • Changeddeclare_intent35 fields changed
      • removedInput schema / properties / after / default
        Removed value: -""
      • removedInput schema / properties / after / description
        Removed value: -"Optional: the symbol's intended new signature or state."
      • removedInput schema / properties / after / title
        Removed value: -"After"
      • removedInput schema / properties / before / default
        Removed value: -""
      • removedInput schema / properties / before / description
        Removed value: -"Optional: the symbol's prior signature or state, for context."
      • removedInput schema / properties / before / title
        Removed value: -"Before"
      • removedInput schema / properties / change_type / default
        Removed value: -""
      • removedInput schema / properties / change_type / description
        Removed value: -"Legacy prose change type (rename | signature | move | delete | add | refactor); prefer typed operations."
      • removedInput schema / properties / change_type / title
        Removed value: -"Change Type"
      • removedInput schema / properties / idempotency_key / default
        Removed value: -""
      • removedInput schema / properties / idempotency_key / description
        Removed value: -"Optional client-supplied key so a retried call is not applied twice."
      • removedInput schema / properties / idempotency_key / title
        Removed value: -"Idempotency Key"
      • removedInput schema / properties / operations / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "additionalProperties": true,
        -      "type": "object"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / operations / default
        Removed value: -null
      • removedInput schema / properties / operations / description
        Removed value: -"Typed edit operations — {op, symbol, ...} — enabling provable conflict prediction."
      • addedInput schema / properties / operations / items
        Added value: +{
        +  "type": "object"
        +}
      • removedInput schema / properties / operations / title
        Removed value: -"Operations"
      • addedInput schema / properties / operations / type
        Added value: +"array"
      • removedInput schema / properties / paths / description
        Removed value: -"Repo-relative file paths this change will touch."
      • removedInput schema / properties / paths / title
        Removed value: -"Paths"
      • removedInput schema / properties / ref / default
        Removed value: -""
      • removedInput schema / properties / ref / description
        Removed value: -"Link to an issue or PR (e.g. #123, a URL, or PROJ-42)."
      • removedInput schema / properties / ref / title
        Removed value: -"Ref"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / summary / default
        Removed value: -""
      • removedInput schema / properties / summary / description
        Removed value: -"A short human-readable summary of the change."
      • removedInput schema / properties / summary / title
        Removed value: -"Summary"
      • removedInput schema / properties / symbols / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / symbols / default
        Removed value: -null
      • removedInput schema / properties / symbols / description
        Removed value: -"Symbol names referenced by, or being changed in, this edit."
      • addedInput schema / properties / symbols / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / symbols / title
        Removed value: -"Symbols"
      • addedInput schema / properties / symbols / type
        Added value: +"array"
      • removedInput schema / title
        Removed value: -"declare_intentArguments"
    • Changeddefer_intent20 fields changed
      • removedInput schema / properties / expires_days / default
        Removed value: -14
      • removedInput schema / properties / expires_days / description
        Removed value: -"How many days until this tripwire or intent expires."
      • removedInput schema / properties / expires_days / title
        Removed value: -"Expires Days"
      • removedInput schema / properties / note / description
        Removed value: -"The tripwire note to leave on the given paths/symbols."
      • removedInput schema / properties / note / title
        Removed value: -"Note"
      • removedInput schema / properties / paths / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / paths / default
        Removed value: -null
      • removedInput schema / properties / paths / description
        Removed value: -"Repo-relative file paths this change will touch."
      • addedInput schema / properties / paths / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / paths / title
        Removed value: -"Paths"
      • addedInput schema / properties / paths / type
        Added value: +"array"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / symbols / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / symbols / default
        Removed value: -null
      • removedInput schema / properties / symbols / description
        Removed value: -"Symbol names referenced by, or being changed in, this edit."
      • addedInput schema / properties / symbols / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / symbols / title
        Removed value: -"Symbols"
      • addedInput schema / properties / symbols / type
        Added value: +"array"
      • removedInput schema / title
        Removed value: -"defer_intentArguments"
    • Changeddifferential_check5 fields changed
      • removedInput schema / properties / other_user / description
        Removed value: -"The teammate (account email) whose in-flight tree to compare against."
      • removedInput schema / properties / other_user / title
        Removed value: -"Other User"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"differential_checkArguments"
    • Changedexplain_code9 fields changed
      • removedInput schema / properties / path / default
        Removed value: -""
      • removedInput schema / properties / path / description
        Removed value: -"Repo-relative file path, e.g. src/app/api.py."
      • removedInput schema / properties / path / title
        Removed value: -"Path"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / symbol / default
        Removed value: -""
      • removedInput schema / properties / symbol / description
        Removed value: -"A symbol in the file — function, class, method, or constant name."
      • removedInput schema / properties / symbol / title
        Removed value: -"Symbol"
      • removedInput schema / title
        Removed value: -"explain_codeArguments"
    • Changedget_briefing6 fields changed
      • removedInput schema / properties / days / default
        Removed value: -7
      • removedInput schema / properties / days / description
        Removed value: -"How many days of history to include."
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"get_briefingArguments"
    • Changedget_symbol7 fields changed
      • removedInput schema / properties / path / description
        Removed value: -"Repo-relative file path, e.g. src/app/api.py."
      • removedInput schema / properties / path / title
        Removed value: -"Path"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / symbol / description
        Removed value: -"A symbol in the file — function, class, method, or constant name."
      • removedInput schema / properties / symbol / title
        Removed value: -"Symbol"
      • removedInput schema / title
        Removed value: -"get_symbolArguments"
    • Changedgraph_export5 fields changed
      • removedInput schema / properties / format / default
        Removed value: -"graphify"
      • removedInput schema / properties / format / title
        Removed value: -"Format"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"graph_exportArguments"
    • Changedgraph_import5 fields changed
      • removedInput schema / properties / graph / additionalProperties
        Removed value: -true
      • removedInput schema / properties / graph / title
        Removed value: -"Graph"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"graph_importArguments"
    • Changedgraph_neighbors10 fields changed
      • removedInput schema / properties / depth / default
        Removed value: -1
      • removedInput schema / properties / depth / title
        Removed value: -"Depth"
      • removedInput schema / properties / path / description
        Removed value: -"Repo-relative file path, e.g. src/app/api.py."
      • removedInput schema / properties / path / title
        Removed value: -"Path"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / symbol / default
        Removed value: -""
      • removedInput schema / properties / symbol / description
        Removed value: -"A symbol in the file — function, class, method, or constant name."
      • removedInput schema / properties / symbol / title
        Removed value: -"Symbol"
      • removedInput schema / title
        Removed value: -"graph_neighborsArguments"
    • Changedgraph_path9 fields changed
      • removedInput schema / properties / from_path / title
        Removed value: -"From Path"
      • removedInput schema / properties / from_symbol / default
        Removed value: -""
      • removedInput schema / properties / from_symbol / title
        Removed value: -"From Symbol"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / to_path / title
        Removed value: -"To Path"
      • removedInput schema / properties / to_symbol / default
        Removed value: -""
      • removedInput schema / properties / to_symbol / title
        Removed value: -"To Symbol"
      • removedInput schema / title
        Removed value: -"graph_pathArguments"
    • Changedheartbeat5 fields changed
      • removedInput schema / properties / intent_id / description
        Removed value: -"The id returned by declare_intent, identifying the intent to extend or complete."
      • removedInput schema / properties / intent_id / title
        Removed value: -"Intent Id"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"heartbeatArguments"
    • Changedinbox_ack4 fields changed
      • removedInput schema / properties / ids / title
        Removed value: -"Ids"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"inbox_ackArguments"
    • Changedinstall_hooks3 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"install_hooksArguments"
    • Changedlist_activity3 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"list_activityArguments"
    • Changedmove_repo5 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / workspace / description
        Removed value: -"The workspace id to bind this credential to."
      • removedInput schema / properties / workspace / title
        Removed value: -"Workspace"
      • removedInput schema / title
        Removed value: -"move_repoArguments"
    • Changedopen_dashboard21 fields changed
      • removedInput schema / properties / interval / default
        Removed value: -""
      • removedInput schema / properties / interval / description
        Removed value: -"Billing interval: monthly or annual."
      • removedInput schema / properties / interval / title
        Removed value: -"Interval"
      • removedInput schema / properties / path / default
        Removed value: -""
      • removedInput schema / properties / path / description
        Removed value: -"Repo-relative file path, e.g. src/app/api.py."
      • removedInput schema / properties / path / title
        Removed value: -"Path"
      • removedInput schema / properties / plan / default
        Removed value: -""
      • removedInput schema / properties / plan / description
        Removed value: -"Plan name, for a pricing or checkout link."
      • removedInput schema / properties / plan / title
        Removed value: -"Plan"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / seats / default
        Removed value: -0
      • removedInput schema / properties / seats / description
        Removed value: -"Seat count, for a pricing or checkout link."
      • removedInput schema / properties / seats / title
        Removed value: -"Seats"
      • removedInput schema / properties / section / default
        Removed value: -"overview"
      • removedInput schema / properties / section / description
        Removed value: -"Dashboard section to deep-link: overview, activity, change, why, worklog, journal, billing, or pricing."
      • removedInput schema / properties / section / title
        Removed value: -"Section"
      • removedInput schema / properties / seq / default
        Removed value: -0
      • removedInput schema / properties / seq / description
        Removed value: -"Ledger sequence number, for a change deep-link."
      • removedInput schema / properties / seq / title
        Removed value: -"Seq"
      • removedInput schema / title
        Removed value: -"open_dashboardArguments"
    • Changedpending_reconciliations8 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / resolve / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / resolve / default
        Removed value: -null
      • addedInput schema / properties / resolve / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / resolve / title
        Removed value: -"Resolve"
      • addedInput schema / properties / resolve / type
        Added value: +"array"
      • removedInput schema / title
        Removed value: -"pending_reconciliationsArguments"
    • Changedrecall13 fields changed
      • removedInput schema / properties / limit / default
        Removed value: -25
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / query / default
        Removed value: -""
      • removedInput schema / properties / query / title
        Removed value: -"Query"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / tags / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / tags / default
        Removed value: -null
      • removedInput schema / properties / tags / description
        Removed value: -"Optional labels to categorize this memory."
      • addedInput schema / properties / tags / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / tags / title
        Removed value: -"Tags"
      • addedInput schema / properties / tags / type
        Added value: +"array"
      • removedInput schema / title
        Removed value: -"recallArguments"
    • Changedrecap6 fields changed
      • removedInput schema / properties / days / default
        Removed value: -1
      • removedInput schema / properties / days / description
        Removed value: -"How many days of history to include."
      • removedInput schema / properties / days / title
        Removed value: -"Days"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"recapArguments"
    • Changedremember17 fields changed
      • removedInput schema / properties / anchor / default
        Removed value: -""
      • removedInput schema / properties / anchor / description
        Removed value: -"Pin this memory to specific code: 'path.py::symbol', 'path.py', or 'src/dir/'."
      • removedInput schema / properties / anchor / title
        Removed value: -"Anchor"
      • removedInput schema / properties / fact / description
        Removed value: -"The durable fact or decision to remember."
      • removedInput schema / properties / fact / title
        Removed value: -"Fact"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / supersedes / default
        Removed value: -""
      • removedInput schema / properties / supersedes / description
        Removed value: -"The id of a prior memory this note replaces."
      • removedInput schema / properties / supersedes / title
        Removed value: -"Supersedes"
      • removedInput schema / properties / tags / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / tags / default
        Removed value: -null
      • removedInput schema / properties / tags / description
        Removed value: -"Optional labels to categorize this memory."
      • addedInput schema / properties / tags / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / tags / title
        Removed value: -"Tags"
      • addedInput schema / properties / tags / type
        Added value: +"array"
      • removedInput schema / title
        Removed value: -"rememberArguments"
    • Changedremove_repo6 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / workspace / default
        Removed value: -""
      • removedInput schema / properties / workspace / description
        Removed value: -"The workspace id to bind this credential to."
      • removedInput schema / properties / workspace / title
        Removed value: -"Workspace"
      • removedInput schema / title
        Removed value: -"remove_repoArguments"
    • Changedrepo_map5 fields changed
      • removedInput schema / properties / budget / default
        Removed value: -12
      • removedInput schema / properties / budget / title
        Removed value: -"Budget"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"repo_mapArguments"
    • Changedreport_edit18 fields changed
      • removedInput schema / properties / content / description
        Removed value: -"The full file contents you wrote or are about to write."
      • removedInput schema / properties / content / title
        Removed value: -"Content"
      • removedInput schema / properties / draft / default
        Removed value: -false
      • removedInput schema / properties / draft / description
        Removed value: -"true while composing: broadcast that symbols are in motion without advancing state."
      • removedInput schema / properties / draft / title
        Removed value: -"Draft"
      • removedInput schema / properties / expected_hashes / anyOf
        Removed value: -[
        -  {
        -    "additionalProperties": true,
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / expected_hashes / default
        Removed value: -null
      • removedInput schema / properties / expected_hashes / description
        Removed value: -"{symbol: hash} you read, making the write a compare-and-swap that rejects on drift."
      • removedInput schema / properties / expected_hashes / title
        Removed value: -"Expected Hashes"
      • addedInput schema / properties / expected_hashes / type
        Added value: +"object"
      • removedInput schema / properties / idempotency_key / default
        Removed value: -""
      • removedInput schema / properties / idempotency_key / description
        Removed value: -"Optional client-supplied key so a retried call is not applied twice."
      • removedInput schema / properties / idempotency_key / title
        Removed value: -"Idempotency Key"
      • removedInput schema / properties / path / description
        Removed value: -"Repo-relative file path, e.g. src/app/api.py."
      • removedInput schema / properties / path / title
        Removed value: -"Path"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"report_editArguments"
    • Changedsend_agent_message5 fields changed
      • removedInput schema / properties / message / title
        Removed value: -"Message"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / to / title
        Removed value: -"To"
      • removedInput schema / title
        Removed value: -"send_agent_messageArguments"
    • Changedsetup6 fields changed
      • removedInput schema / properties / mode / default
        Removed value: -"enforce"
      • removedInput schema / properties / mode / description
        Removed value: -"enforce (block the write on a certain collision) or advise (never block)."
      • removedInput schema / properties / mode / title
        Removed value: -"Mode"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"setupArguments"
    • Changedsimulate_merge8 fields changed
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / properties / users / anyOf
        Removed value: -[
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • removedInput schema / properties / users / default
        Removed value: -null
      • addedInput schema / properties / users / items
        Added value: +{
        +  "type": "string"
        +}
      • removedInput schema / properties / users / title
        Removed value: -"Users"
      • addedInput schema / properties / users / type
        Added value: +"array"
      • removedInput schema / title
        Removed value: -"simulate_mergeArguments"
    • Changedswitch_workspace5 fields changed
      • removedInput schema / properties / workspace / default
        Removed value: -""
      • removedInput schema / properties / workspace / description
        Removed value: -"The workspace id to bind this credential to."
      • removedInput schema / properties / workspace / title
        Removed value: -"Workspace"
      • addedInput schema / required
        Added value: +[]
      • removedInput schema / title
        Removed value: -"switch_workspaceArguments"
    • Changedsync_agents_block5 fields changed
      • removedInput schema / properties / file_content / description
        Removed value: -"The full current contents of the file (AGENTS.md for sync_agents_block)."
      • removedInput schema / properties / file_content / title
        Removed value: -"File Content"
      • removedInput schema / properties / repo_id / description
        Removed value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch."
      • removedInput schema / properties / repo_id / title
        Removed value: -"Repo Id"
      • removedInput schema / title
        Removed value: -"sync_agents_blockArguments"
  10. 6 tool updates
    • Addedblast_radius
    • Addedgraph_export
    • Addedgraph_import
    • Addedgraph_neighbors
    • Addedgraph_path
    • Addedrepo_map
  11. 28 tool updates
    • First observedblind_spots
    • First observedcheck_collisions
    • First observedcomplete_intent
    • First observedcompliance_report
    • First observedconnect_agents
    • First observeddeclare_intent
    • First observeddefer_intent
    • First observeddifferential_check
    • First observedexplain_code
    • First observedget_briefing
    • First observedget_symbol
    • First observedheartbeat
    • First observedinbox_ack
    • First observedinstall_hooks
    • First observedlist_activity
    • First observedmove_repo
    • First observedopen_dashboard
    • First observedpending_reconciliations
    • First observedrecall
    • First observedrecap
    • First observedremember
    • First observedremove_repo
    • First observedreport_edit
    • First observedsend_agent_message
    • First observedsetup
    • First observedsimulate_merge
    • First observedswitch_workspace
    • First observedsync_agents_block

Publisher details

Operator
Lithometric · Publisher source
Vendor relationship
First-party · Publisher source
Restrictions
Collide is free to connect and use. No paid plan, admin approval or workspace provisioning is needed: any developer can add https://mcp.collidemcp.com as a connector in Claude, ChatGPT, Cursor or VS Code, approve through a browser sign in, and start working on the Free tier right away. No API keys, no config, no custom OAuth app to register, and no regional restrictions. Limits are based on plan, not setup. Speed and tokens are the same on every tier. Free ($0 forever): one player, 1 repo per workspace, up to 3 concurrent agents, messaging between your own agents, 7 day ledger and knowledge history, unlimited free viewers. Team ($19/seat/month, or $190/seat/year): unlimited agents and repos, agent knowledge shared across teammates, team wide messaging, 90 day history and a team dashboard. 14 day free trial, no card required. Business ($45/seat/month, or $450/seat/year): unlimited history, unmetered calls, the full compliance ledger of every agent action with audit logs and export, SSO, admin roles and priority support. Enterprise (custom): self hosted in your VPC or on premise, SAML or SCIM provisioning, custom data retention and a dedicated SLA. Prices are grandfathered for life. · Publisher source

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    22 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources