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
74.9% over 45 days
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 14 tools

Disambiguation4/5

Most tools target distinct purposes and the descriptions cross-reference each other explicitly (e.g. blast_radius vs get_symbol, recall vs get_briefing), which helps a lot. However there is real overlap: setup and connect_agents both return an install command, and get_briefing/explain_code/recap/recall/get_symbol all serve context-retrieval needs that an agent could easily misselect among.

Naming Consistency3/5

The set mixes verb_noun names (connect_agents, defer_intent, explain_code, get_briefing, get_symbol, send_agent_message) with bare verbs (claim, recall, recap, remember, setup) and noun phrases (blast_radius, inbox_ack, pending_reconciliations). It stays readable but there is no single predictable convention.

Tool Count5/5

14 tools is well within the healthy 3-15 range and each one covers a distinct facet of the coordination domain (code graph, notes, messaging, setup, sequencing). No obvious filler or redundancy that inflates the count.

Completeness4/5

The surface covers the full lifecycle for agent collaboration: briefing/context, symbol facts, blast radius, durable notes (remember/recall), messaging (send/ack), reconciliation, sequencing (claim), and setup. Minor gaps remain, such as retracting/editing a saved note or explicitly listing contacts, but core workflows are covered.

Available Tools

14 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; 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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

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, destructiveHint=false and openWorldHint=false, so safety is covered; the description's 'Read-only' is largely redundant. It does add value beyond the annotations by disclosing the data source (live code graph), the freshness of in-flight work data, and a completeness caveat tied to briefing coverage.

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 tool is front-loaded with the trigger scenario before the output description, and the skip-condition is placed last where it belongs. The colon-fragment opening is slightly awkward, but every sentence carries information and nothing is padded.

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?

No output schema exists, so the description takes on the burden of describing the return content — dependents at each level plus file, owner and in-flight work — and it does so completely. Combined with the usage and coverage caveats, 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.

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. The description only faintly gestures at them ('this one' for symbol, 'level by level' for depth) without adding syntax, defaults, or format guidance, 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 resource and scope: every symbol that depends on this one, level by level, with each dependent's file, owner and in-flight work. This is clearly distinguishable from siblings like get_symbol and explain_code, and the phrasing 'what breaks if I change this' anchors the intent unmistakably.

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?

Explicit trigger conditions ('Before renaming, changing a signature or deleting') and an explicit when-not ('skip it when the briefing's Coverage line says every dependent is already listed'), which also routes the agent to sibling get_briefing. Nothing is left to inference.

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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.
sequenceYesA directory such as db/migrations/, or a name such as release.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations establish the safety profile (readOnlyHint=false, destructiveHint=false), so the bar is lower, and the description still adds real value: it discloses the concurrency guarantee ("two agents asking at once never get the same number"), the return format (zero-padded number), and the interaction with the create-file hooks. Gaps remain on reservation lifetime/expiry and what happens if a number is already taken, but this is well above the annotations alone.

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, front-loaded with the core action and scope, then the when-to-use constraint, then the return shape. No filler; each sentence carries distinct information an agent needs.

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 correctly explains the return value (the padded number), and the mutating semantics are covered by annotations plus the reservation explanation. What is missing for a state-changing reservation tool is the failure/expiry behavior, but everything needed to make a correct call is present.

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 is already documented in the schema, including that `sequence` may be a directory or a name. The description echoes the "named sequence" case and the zero-padding but adds no syntax or constraint detail beyond the schema. Baseline 3 is appropriate when the schema carries the parameter burden.

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 and resource ("Reserve the next number in a sequence") and pins the scope with examples of what a sequence is: a migration, an ADR, a release. It also names the side effect (concurrency-safe reservation), so an agent knows exactly what it gets. No sibling in the list overlaps with this function, so disambiguation is not an issue.

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?

Explicit when-to-use: "call this only for a number you need before writing, or for a named sequence." Explicit when-not: the hooks already claim a numbered file's number when you create it, so a plain file creation needs no claim. The alternative path (hooks on file creation) is named, 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.

connect_agentsAInspect

Set up Collide for the agent tools on this machine (Claude Code, Codex, Cursor, Hermes): returns the same one install command as setup, which installs Collide's hooks once for every repo on the machine and writes nothing into the repo. mode "files" returns the protocol rules files and MCP configs to commit for tools without hooks (Windsurf, Cline, GitHub Copilot) instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoLeave empty for the machine install; "files" for the rules files and MCP configs.
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 declare this is not read-only but non-destructive and not open-world; the description adds real behavioral context beyond them, disclosing that it installs hooks once for every repo on the machine and writes nothing into the repo, and that it returns an install command rather than performing everything silently. Missing permission/auth prerequisites and whether anything is written outside the repo.

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?

Effectively one dense sentence that front-loads the primary action and then the alternative mode. It is appropriately sized for a two-mode tool, though the parenthetical tool lists make it slightly heavy to scan.

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 two-parameter tool with no output schema, the description covers what both modes return and the machine-wide side effect, which is enough for correct invocation. Auth requirements and the exact shape of the returned files list are the only notable omissions.

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 goes further by explaining what mode="files" actually yields (protocol rules files and MCP configs to commit) and which tools need them, adding meaning beyond the schema's terser mode note.

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 ("Set up Collide for the agent tools on this machine"), names the concrete tools it targets, and explicitly differentiates itself from the sibling `setup` by describing what it returns relative to it. An agent can distinguish this from setup and from other siblings without opening a 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?

The description clearly splits the two modes: empty mode for the machine install, "files" for tools without hooks, listing which tools fall in each camp (Claude Code/Codex/Cursor/Hermes vs Windsurf/Cline/Copilot). It gives context but does not state when to prefer this over the sibling `setup`, despite referencing it.

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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.
symbolsNoSymbol names whose next edit triggers it.
expires_daysNoDays until the tripwire expires (default 14).

TDQS

A3.9/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the one-shot firing behavior ('fires once into their next tool result and briefing'), the external side effect of creating a CRM task when connected (matching openWorldHint), and the return payload (tripwire id and expiry). This is rich, non-obvious 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?

Front-loads the purpose, then layers mechanism, side effect, and return value in three tight sentences. The inline example is slightly long but earns its place by making the tripwire concept tangible.

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 five-parameter mutation tool with no output schema, the description covers purpose, firing behavior, side effects, and return values, which is nearly everything an agent needs. The only gap is the absence of when-not guidance relative to sibling memory/claim tools.

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 is already documented, and the baseline is 3. The description reinforces the paths/symbols trigger concept and mentions expiry in the return, but adds no syntax or format detail beyond the schema.

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 gives a concrete verb and resource: it creates a 'tripwire' on paths or symbols that warns the next editor. The concept is unmistakable and distinguishable from siblings like remember or claim, though no sibling is named explicitly to sharpen the contrast.

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?

'Leave work unfinished safely' implies the trigger condition (you are stopping mid-task), and the example note makes the intent concrete. However, it never states when to prefer this over remember/claim or when not to use it, leaving the agent to infer the boundary.

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. 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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

TDQS

A4/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's 'Read-only' merely restates that. It does add genuine behavioral context beyond the annotations: results are ordered oldest first, uncommitted work is included, and the output covers reverted attempts and their reasons — scope facts an agent cannot get from the hints alone.

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 motivating question, then a dense but earned enumeration of returned artifacts with no filler sentences. The single long clause stack is slightly heavy but each element describes real output content rather than 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?

There is no output schema, so the description carries the return-value burden and does so thoroughly — edits, intents, rationales, reverted attempts, notes, and uncommitted work — while also stating ordering. For a zero-required-param read-only tool, nothing an agent needs 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?

Schema description coverage is 100%, so all three parameters (path, symbol, repo_id) are already documented, including repo_id's fallback behavior. The description only restates the path/symbol pairing at a high level and adds no format or syntax detail, so 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 verb+resource — the history behind a path or symbol — and enumerates the exact payload (each edit with who/when/what, completed intents with rationales, reverted attempts, anchored notes). That content profile is unmistakably distinct from siblings like get_symbol (current code) or recall (agent memory), so an agent can route without opening a schema.

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?

Usage is only implied by the framing 'Why the code is the way it is,' which signals the rationale/history use case, plus the scoping rule that omitting a symbol covers the whole file. There is no explicit when-not-to-use or named alternative (e.g., versus get_symbol or blast_radius), leaving the agent to infer the boundary.

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

Only when no Collide briefing is in your context (Collide's hooks are not installed): the recent history of this repo — who changed what, renames to adapt to, hotspots, abandoned work and who is working right now. Where the hooks run, the same briefing already arrived with your prompt; do not call this again for it. 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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already carry readOnlyHint/destructiveHint, so the explicit 'Read-only' is largely redundant, but the description adds genuine behavioral context: the hook-deduplication rule, what the response contains, and the fact that supplying path/symbol expands the result into a blast-radius computation.

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 conditional constraint is front-loaded and every sentence carries information, but the description is dense and the trailing return-value list is slightly listy where a shorter clause would do. No wasted filler, though.

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 naming the return contents (summary lines, changed modules with exact signatures, anchored notes, live agents), and it covers usage gating, parameter behavior, and safety in one place. 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; the description goes beyond it by explaining the path+symbol combination semantics (symbol narrows the blast radius within path) and the purpose of repo_id's omission default, which the schema only partially conveys.

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+resource (get the briefing = recent repo history) and enumerates its contents (who changed what, renames, hotspots, abandoned work, live agents). It is clearly distinguishable from siblings like recap/recall and even notes its overlap with 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 Guidelines5/5

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

Gives an explicit gating condition ('Only when no Collide briefing is in your context') plus an explicit when-not ('Where the hooks run... do not call this again for it'), and points to the path/symbol route for blast-radius work instead. Nothing about when to invoke is left to inference.

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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

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, destructiveHint=false, openWorldHint=false, so the safety profile is covered and the trailing 'Read-only' is largely redundant. The description still adds real behavioral context: it reads facts 'without opening the file', describes what data is surfaced (notes anchored to the symbol, check status), and explains the fallback behavior when symbol is omitted.

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 value proposition and what is returned, then the routing guidance. The first sentence is a long comma-chained list that borders on run-on, but every clause carries information and nothing is padding.

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 returns and does so thoroughly, including the module-wide case and the attached notes/check status. Minor gaps remain: nothing about a nonexistent symbol or error behavior, which is acceptable but keeps it short of a 5.

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 (path, symbol, repo_id) are already documented with examples and the omit-semantics for symbol and repo_id. The description restates the symbol-omission behavior but adds no syntax or format detail 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 verb+resource (get one symbol's facts) and enumerates exactly what comes back: signature, parameters, calls, span, hash, anchored notes, and repo check status. It also carves out the module-wide variant when symbol is omitted, so an agent can distinguish it from blast_radius and get_briefing without opening a 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?

Gives an explicit trigger ('use it when a briefing lacks a fact') and names the alternative plus its selecting condition ('use blast_radius for who depends on it'). Both the when and the when-not are stated, leaving nothing 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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

TDQS

A4.4/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: unacknowledged messages repeat on every response, and the call returns the still-pending messages. The idempotent/non-destructive/closed-world profile is already covered by annotations, but the repeat semantics and return content are new information the agent could not get from structured fields.

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 effect, then the operational rule. Every clause earns its place: action, trigger, consequence, return value.

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

Completeness4/5

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

With no output schema, the description wisely states the return ('the messages still pending'), and the annotation set covers the safety profile. Only minor gaps remain, such as behavior for unknown or already-acked ids, so it is complete enough to call 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 meaning about the ids parameter's provenance and timing ('from messages_pending once you have acted on them'), which the schema only states as 'Message ids from messages_pending.' repo_id semantics remain schema-only.

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 ('Mark messages ... as handled') plus the effect ('so they stop arriving'), which is precisely distinguishable from the sibling send_agent_message. An agent knows immediately this is the acknowledgement side of the agent inbox loop.

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 trigger and prerequisite: 'pass the ids from messages_pending once you have acted on them', and a consequence for skipping it ('Unacknowledged messages repeat on every response'). It stops short of a when-not case (e.g. what to do with an id you cannot act on), so 4 rather than 5.

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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.
resolveNoIds of reconciliations you have merged and verified.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=false, and the description reinforces and sharpens this with an explicit merge rule ('keeping both sides' work; never by deleting either'), which tells the agent exactly what is and isn't allowed. It also discloses the two-phase claim-then-resolve workflow and the return content ('claimed reconciliations and how many stay open'), adding real context beyond the annotations.

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 trigger condition is front-loaded, followed by the merge rule and the resolve step, so an agent can act from the first clause onward. It is a little dense and conversational, but nearly every sentence carries actionable information, so it stays well-structured.

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 compensates by stating what is returned ('the claimed reconciliations and how many stay open') and by covering the full trigger/workflow for both parameters. It is essentially complete for an agent to invoke it correctly, with only minor room to name the non-collision path.

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 meaning the schema lacks: it explains that resolve carries ids of reconciliations already merged and verified, and that calling with resolve=[id] is a second invocation after tests pass. That workflow-level semantics raises it above baseline.

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 states a specific two-mode behavior: claim open collisions so they can be merged, and later resolve them with resolve=[id]. The verb+resource (claim/merge reconciliations) is clear and concrete. It stops short of explicitly distinguishing itself from the sibling 'claim' tool, so it is strong but not maximally differentiated.

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 an explicit trigger ('When a response says two agents' work collides (reconciliations_pending)') and a clear follow-up condition ('After the merge passes the tests, call again with resolve=[id]'), which sequences the two calls correctly. No explicit when-not guidance or named alternative is given, keeping it just below top marks.

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. The hook briefing already carries the notes anchored to the code you touch: use this only to search beyond them, 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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

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, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds non-obvious behavior: empty query returns the most recent, results are ordered newest first, and each note comes back with anchor, confidence and a staleness flag. It does not discuss rate limits or result truncation, so it falls short of 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?

Front-loads what the tool does and follows with the usage constraint, so the important routing information comes first. It is dense and slightly overpacked — three ideas separated by semicolons — but no sentence is 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, and the description compensates by naming the returned fields (anchor, confidence, staleness). Combined with the ordering, empty-query behavior, and the note-creation sibling, an agent has everything needed to call and interpret this tool 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 tags, limit, query and repo_id are already documented, including the empty-query fallback and the repo_id omission default. The description adds only the 'newest first' ordering, which the schema does not state — enough to hold the baseline of 3 but not to exceed it.

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 (search the team's saved notes) plus the matching mechanism (by text and tags) and ordering (newest first). It also names the sibling tool that produces the data (remember), so an agent can place it in the workflow without opening a 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 says when NOT to use it — the hook briefing already carries notes anchored to the code you touch — and when to reach for it instead: searching beyond those anchors, before re-deciding something the team may already have settled. That is a clear when/when-not/alternative triad.

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_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so the repeated 'Read-only' line adds little. However, the description does disclose the return granularity ('one entry per session') and a dashboard link, which is real behavioral context not present in any structured field.

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 sentences, front-loaded with the metric inventory before the usage hint and the return note. The 'Read-only' sentence is mildly redundant against the annotations, but nothing is padded or buried.

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 compensates by naming the fields returned and the per-session granularity plus dashboard link. Combined with 100% schema coverage on the two optional params, an agent has enough to call it correctly; only minor gaps (auth/connection prerequisites) remain.

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 parameters (days, repo_id) are already fully documented, including the 90-day cap and the repo_id format/default. The description only hints at repo scoping with 'in this repo' and adds no syntax or default detail beyond the schema.

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 first sentence states precisely what the tool surfaces: per-session agent activity (edits, lines, tokens, model, cost, rationales, paths). That is a clear verb-plus-resource statement that resolves the opaque name 'recap'. It does not, however, explicitly differentiate itself from nearby siblings such as recall, remember, or get_briefing.

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

Usage Guidelines4/5

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

The description gives explicit trigger phrasings: use it to answer 'what happened' or 'what did this cost', which maps directly onto likely user intents. It offers no when-not guidance or named alternatives (e.g. recall for stored memory), 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.

rememberA
Destructive
Inspect

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. When the human states a standing decision ("remove X", "never Y", "only Z"), save it with kind="decision" anchored to the code it covers: it never goes stale, and each agent's first write there is held once with it. Writes the note(s) and returns their ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
factNoThe note, one or two sentences.
kindNonote (default), or decision: the owner's standing decision; needs an anchor.
tagsNoLabels to find it by with recall.
factsNoSeveral notes at once: [{fact, anchor?, tags?, kind?}]. Decision items with the same fact are one decision over all their anchors.
anchorNoWhere it applies: path::symbol, a file, or dir/.
repo_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.
supersedesNoId of a note or decision this one replaces; the old one is retired. kind="decision" with no fact withdraws that decision.

TDQS

A4.5/5.0
Behavior4/5

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

Goes well beyond the annotations by disclosing non-obvious lifecycle behavior: anchored notes reach whoever touches that code, are marked stale when it is rewritten, decisions never go stale, and each agent's first write at a decision's location is held once with it. It also states the write returns ids. It does not explain what the destructiveHint=true annotation implies (retiring notes via supersedes is only documented in the schema), so this falls just short of 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?

Three sentences, front-loaded with the core purpose and with the anchor and decision semantics following in logical order; every sentence carries information. It is dense with parenthetical examples, which slightly hurts scannability, but there is 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?

For a 7-parameter, zero-required mutation tool with no output schema, the description covers the important semantics (what to save, anchoring, decision behavior, returned ids). It omits supersedes/withdrawal semantics and batch `facts` handling, which are only described in the schema, but nothing critical to a correct first call is missing.

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 real meaning for anchor (path::symbol, file, or dir/, and who it reaches) and kind (decision requires an anchor and behaves differently). tags and supersedes are left to the schema, so it improves on the baseline without covering everything.

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: a decision, constraint or gotcha') and immediately excludes the wrong content type ('not code state'), which separates it from code-reading siblings like explain_code, get_symbol, recall and recap. An agent knows without opening the schema that this is the write-side of team memory.

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?

Explicit conditional guidance: anchor notes that concern specific code, and the specific trigger 'When the human states a standing decision ("remove X", "never Y", "only Z")' routed to kind="decision" with an anchor. It also names when-not-to-use ('not code state') and ties decisions to the code they cover, so selection between plain notes, anchored notes and decisions is fully determined.

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. In a shell, collide message "..." does the same with no tool to load. With neither to nor anchor, it goes to the agents at work in this repo whose files the message names (your own other sessions included), and to everyone at work only when it names no code. 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. to = "@user" (or "@user/2", one of their agents) messages any Collide user once they accept you as a contact; hub = a hub's name or id (a new name with to="@a, @b" starts it). Returns the message id and who received it.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoA teammate's account email, or @user / @user/2; omit it when anchor is given.
hubNoA hub's name or id.
anchorNoThe code the message is about: path.py::symbol, path.py, or dir/.
messageYesWhat you need them to do or know.
repo_idNoThe repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only flag this as a non-read-only, open-world, non-destructive write. The description goes well beyond them: it discloses delivery timing ('arrives with their next tool result'), a contact-acceptance prerequisite for messaging arbitrary '@user' accounts, what the anchor recipient additionally sees (whether the code changed and whether tests passed since), and the return payload (message id and recipients).

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, and nearly every sentence carries routing information that cannot be dropped. However, the routing rules are packed into a single dense paragraph with nested clauses, which makes scanning harder than it needs to be.

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 write tool with no output schema, the description covers routing modes, defaults, prerequisites, delivery behavior, and the shape of the response. An agent has everything needed to call it correctly without opening any other resource.

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 genuine meaning the terse schema fields lack: how `to`, `anchor`, and `hub` interact, the default behavior when neither is supplied, that a new hub name combined with 'to="@a, @b"' starts a hub, and that repo_id defaults to the session's repo.

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 opening sentence states a specific verb and resource: 'Send a message to teammates' agents.' It further distinguishes itself from siblings by naming the CLI equivalent (`collide message`) that needs no tool load, so an agent can tell this apart from connect_agents or inbox_ack at a glance.

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?

Explicit routing decision tree: with neither `to` nor `anchor` it broadcasts to agents working in this repo whose files are named (or everyone if no code is named); `to` targets one account; `anchor` targets whoever has an open intent on or recently edited that code. It also names the alternative path (`collide message` in a shell). Nothing is left to inference.

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 on this machine, once for every repo on it. The answer has install.command: run it exactly as given, in a shell at the repo root. It installs Collide's hooks for Claude Code, Codex, Cursor and Hermes, links the machine to your account, and writes nothing into the repo; if the repo still has Collide's old per-repo setup (.collide/ hook files), it removes that and stages the removal for you to commit. Returns the command and what it installs.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoIgnored: kept for older callers. The machine's hooks always gate writes.
repo_idYesThe repository id, e.g. github.com/org/repo (its git origin).

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=false) by disclosing that nothing is written into the repo, that old per-repo .collide/ hook files are removed and staged for the user to commit, and that the machine is linked to the account. The staged-removal detail reconciles the seemingly destructive file deletion with destructiveHint=false.

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 core action and the imperative to run the returned command, then packs install/removal/return details efficiently. Slightly dense but each clause carries distinct 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 still explains the return ('Returns the command and what it installs'), the side effects, and the account linkage. An agent has everything needed to call it and act on the result.

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

Parameters3/5

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

Schema coverage is 100% and the schema already documents repo_id (git origin) and explains that mode is ignored. The description only implies the repo-root context and adds no parameter syntax or format 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 verb and resource ('Set up Collide on this machine') and enumerates exactly what the setup does: installs hooks for Claude Code, Codex, Cursor and Hermes, links the machine to the account. No sibling tool (blast_radius, claim, recall, etc.) overlaps, so the agent can identify it immediately.

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 concrete usage context: 'once for every repo on it' and 'run it exactly as given, in a shell at the repo root.' It does not name alternatives or explicit when-not-to-use conditions, but no sibling competes for this job, so the guidance is clear without exclusions.

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. 15 tool updates
    • Changedblast_radius2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "path"
        -]New value: +[
        +  "path"
        +]
    • Changedclaim2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "sequence"
        -]New value: +[
        +  "sequence"
        +]
    • Changedconnect_agents1 field changed
      • changedInput schema / properties / mode / description
        Previous value: -"Leave empty for the machine install; \"files\" for the per-repo files."New value: +"Leave empty for the machine install; \"files\" for the rules files and MCP configs."
    • Removeddeclare_intent
    • Changeddefer_intent2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "note"
        -]New value: +[
        +  "note"
        +]
    • Changedexplain_code2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id"
        -]New value: +[]
    • Changedget_briefing2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id"
        -]New value: +[]
    • Changedget_symbol2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "path"
        -]New value: +[
        +  "path"
        +]
    • Changedinbox_ack2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "ids"
        -]New value: +[
        +  "ids"
        +]
    • Changedpending_reconciliations2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id"
        -]New value: +[]
    • Changedrecall2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id"
        -]New value: +[]
    • Changedrecap2 fields changed
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id"
        -]New value: +[]
    • Changedremember5 fields changed
      • changedInput schema / properties / facts / description
        Previous value: -"Several notes at once: [{fact, anchor?, tags?}]."New value: +"Several notes at once: [{fact, anchor?, tags?, kind?}]. Decision items with the same fact are one decision over all their anchors."
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "note (default), or decision: the owner's standing decision; needs an anchor.",
        +  "enum": [
        +    "note",
        +    "decision"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / properties / supersedes / description
        Previous value: -"Id of a note this one replaces; the old note is retired."New value: +"Id of a note or decision this one replaces; the old one is retired. kind=\"decision\" with no fact withdraws that decision."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id"
        -]New value: +[]
    • Changedsend_agent_message4 fields changed
      • addedInput schema / properties / hub
        Added value: +{
        +  "description": "A hub's name or id.",
        +  "type": "string"
        +}
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in."
      • changedInput schema / properties / to / description
        Previous value: -"A teammate's account email; omit it when anchor is given."New value: +"A teammate's account email, or @user / @user/2; omit it when anchor is given."
      • changedInput schema / required
        Previous value: -[
        -  "repo_id",
        -  "message"
        -]New value: +[
        +  "message"
        +]
    • Changedsetup2 fields changed
      • changedInput schema / properties / mode / description
        Previous value: -"enforce (default: the pre-write gate is on), advisory (reporting only), or files (skip the command and return the files)."New value: +"Ignored: kept for older callers. The machine's hooks always gate writes."
      • changedInput schema / properties / repo_id / description
        Previous value: -"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."New value: +"The repository id, e.g. github.com/org/repo (its git origin)."
  2. 1 tool update
    • Changedconnect_agents1 field changed
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "Leave empty for the machine install; \"files\" for the per-repo files.",
        +  "type": "string"
        +}
  3. 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
  4. 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"
        +]
  5. 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"
        +]
  6. 3 tool updates
    • Addedconnect_agents
    • Addedinstall_hooks
    • Addedsetup
  7. 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"
        +}
  8. 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"
        +]
  9. 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
  10. 1 tool update
    • Addedplan_work
  11. 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"

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
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • 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
    4 npm
    1
    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