Collide MCP
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.
- Status
- Healthy
- Uptime
- 74.9% over 45 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 14 tools
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.
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.
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.
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 toolsblast_radiusARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Repo-relative file path of the symbol. | |
| depth | No | How many hops of dependents to follow, 1 to 6 (default 3). | |
| symbol | No | The symbol whose dependents to list; omit for the whole file. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | The highest number you already see in use in that directory, if any. | |
| title | No | What the number is for; teammates see it. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. | |
| sequence | Yes | A directory such as db/migrations/, or a name such as release. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Leave empty for the machine install; "files" for the rules files and MCP configs. | |
| repo_id | Yes | The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | What is unfinished and what the next person should do. | |
| paths | No | Files whose next edit triggers the warning. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. | |
| symbols | No | Symbol names whose next edit triggers it. | |
| expires_days | No | Days until the tripwire expires (default 14). |
TDQS
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.
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.
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.
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.
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.
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_codeARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | File to explain; with no symbol, the whole file. | |
| symbol | No | Narrow the history to one symbol. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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_briefingARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How far back to look, in days (default 7). | |
| path | No | Optional file to also compute the blast radius for. | |
| depth | No | Hops of dependents to include with path (default 3). | |
| symbol | No | Optional symbol in path to narrow that blast radius. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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_symbolARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Repo-relative file path, e.g. src/auth.py. | |
| symbol | No | Function, class or method name; omit for the whole module. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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_ackAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Message ids from messages_pending. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. | |
| resolve | No | Ids of reconciliations you have merged and verified. |
TDQS
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.
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.
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.
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.
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.
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.
recallARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Only notes carrying all of these tags. | |
| limit | No | Maximum notes to return (default 25). | |
| query | No | Text to find in the note; empty returns the most recent. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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.
recapARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | How many days back, up to 90 (default 1). | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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.
rememberADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fact | No | The note, one or two sentences. | |
| kind | No | note (default), or decision: the owner's standing decision; needs an anchor. | |
| tags | No | Labels to find it by with recall. | |
| facts | No | Several notes at once: [{fact, anchor?, tags?, kind?}]. Decision items with the same fact are one decision over all their anchors. | |
| anchor | No | Where it applies: path::symbol, a file, or dir/. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. | |
| supersedes | No | Id of a note or decision this one replaces; the old one is retired. kind="decision" with no fact withdraws that decision. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | A teammate's account email, or @user / @user/2; omit it when anchor is given. | |
| hub | No | A hub's name or id. | |
| anchor | No | The code the message is about: path.py::symbol, path.py, or dir/. | |
| message | Yes | What you need them to do or know. | |
| repo_id | No | The repository id, e.g. github.com/org/repo (the Collide briefing names it). Omit it to use the repo your session works in. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Ignored: kept for older callers. The machine's hooks always gate writes. | |
| repo_id | Yes | The repository id, e.g. github.com/org/repo (its git origin). |
TDQS
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.
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.
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.
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.
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.
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.
15 tool updates
- Changed
blast_radius2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "path" -]New value: +[ + "path" +]
- Changed
claim2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "sequence" -]New value: +[ + "sequence" +]
- Changed
connect_agents1 field changed- changed
Input schema / properties / mode / descriptionPrevious 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."
- Removed
declare_intent - Changed
defer_intent2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "note" -]New value: +[ + "note" +]
- Changed
explain_code2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id" -]New value: +[]
- Changed
get_briefing2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id" -]New value: +[]
- Changed
get_symbol2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "path" -]New value: +[ + "path" +]
- Changed
inbox_ack2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "ids" -]New value: +[ + "ids" +]
- Changed
pending_reconciliations2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id" -]New value: +[]
- Changed
recall2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id" -]New value: +[]
- Changed
recap2 fields changed- changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id" -]New value: +[]
- Changed
remember5 fields changed- changed
Input schema / properties / facts / descriptionPrevious 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." - added
Input schema / properties / kindAdded value: +{ + "description": "note (default), or decision: the owner's standing decision; needs an anchor.", + "enum": [ + "note", + "decision" + ], + "type": "string" +} - changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / properties / supersedes / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id" -]New value: +[]
- Changed
send_agent_message4 fields changed- added
Input schema / properties / hubAdded value: +{ + "description": "A hub's name or id.", + "type": "string" +} - changed
Input schema / properties / repo_id / descriptionPrevious 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." - changed
Input schema / properties / to / descriptionPrevious 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." - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "message" -]New value: +[ + "message" +]
- Changed
setup2 fields changed- changed
Input schema / properties / mode / descriptionPrevious 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." - changed
Input schema / properties / repo_id / descriptionPrevious 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)."
1 tool update
- Changed
connect_agents1 field changed- added
Input schema / properties / modeAdded value: +{ + "description": "Leave empty for the machine install; \"files\" for the per-repo files.", + "type": "string" +}
31 tool updates
- Changed
blast_radius4 fields changed- added
Input schema / properties / depth / descriptionAdded value: +"How many hops of dependents to follow, 1 to 6 (default 3)." - added
Input schema / properties / path / descriptionAdded value: +"Repo-relative file path of the symbol." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / symbol / descriptionAdded value: +"The symbol whose dependents to list; omit for the whole file."
- Removed
blind_spots - Changed
claim4 fields changed- added
Input schema / properties / after / descriptionAdded value: +"The highest number you already see in use in that directory, if any." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / sequence / descriptionAdded value: +"A directory such as db/migrations/, or a name such as release." - added
Input schema / properties / title / descriptionAdded value: +"What the number is for; teammates see it."
- Removed
compliance_report - Changed
connect_agents1 field changed- added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
- Changed
declare_intent10 fields changed- added
Input schema / properties / after / descriptionAdded value: +"The signature or name after it." - added
Input schema / properties / before / descriptionAdded value: +"The signature or name before the change." - added
Input schema / properties / change_type / descriptionAdded value: +"Legacy prose kind of change; prefer operations." - added
Input schema / properties / idempotency_key / descriptionAdded value: +"Any string; a retry with the same key declares once." - added
Input schema / properties / operations / descriptionAdded value: +"Typed operations, e.g. {op: \"rename\", symbol, new_name}." - added
Input schema / properties / paths / descriptionAdded value: +"Files the change will touch." - added
Input schema / properties / ref / descriptionAdded value: +"An issue or pull request this work belongs to." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / summary / descriptionAdded value: +"One line on what you are about to do." - added
Input schema / properties / symbols / descriptionAdded value: +"Symbols the change will touch."
- Changed
defer_intent5 fields changed- added
Input schema / properties / expires_days / descriptionAdded value: +"Days until the tripwire expires (default 14)." - added
Input schema / properties / note / descriptionAdded value: +"What is unfinished and what the next person should do." - added
Input schema / properties / paths / descriptionAdded value: +"Files whose next edit triggers the warning." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / symbols / descriptionAdded value: +"Symbol names whose next edit triggers it."
- Removed
differential_check - Changed
explain_code3 fields changed- added
Input schema / properties / path / descriptionAdded value: +"File to explain; with no symbol, the whole file." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / symbol / descriptionAdded value: +"Narrow the history to one symbol."
- Changed
get_briefing5 fields changed- added
Input schema / properties / days / descriptionAdded value: +"How far back to look, in days (default 7)." - added
Input schema / properties / depth / descriptionAdded value: +"Hops of dependents to include with path (default 3)." - added
Input schema / properties / path / descriptionAdded value: +"Optional file to also compute the blast radius for." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / symbol / descriptionAdded value: +"Optional symbol in path to narrow that blast radius."
- Changed
get_symbol3 fields changed- added
Input schema / properties / path / descriptionAdded value: +"Repo-relative file path, e.g. src/auth.py." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / symbol / descriptionAdded value: +"Function, class or method name; omit for the whole module."
- Removed
graph_export - Removed
graph_import - Removed
graph_neighbors - Removed
graph_path - Changed
inbox_ack2 fields changed- added
Input schema / properties / ids / descriptionAdded value: +"Message ids from messages_pending." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
- Removed
install_hooks - Removed
list_activity - Removed
move_repo - Removed
open_dashboard - Changed
pending_reconciliations2 fields changed- added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / resolve / descriptionAdded value: +"Ids of reconciliations you have merged and verified."
- Removed
plan_work - Changed
recall4 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum notes to return (default 25)." - added
Input schema / properties / query / descriptionAdded value: +"Text to find in the note; empty returns the most recent." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / tags / descriptionAdded value: +"Only notes carrying all of these tags."
- Changed
recap2 fields changed- added
Input schema / properties / days / descriptionAdded value: +"How many days back, up to 90 (default 1)." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
- Changed
remember6 fields changed- added
Input schema / properties / anchor / descriptionAdded value: +"Where it applies: path::symbol, a file, or dir/." - added
Input schema / properties / fact / descriptionAdded value: +"The note, one or two sentences." - added
Input schema / properties / facts / descriptionAdded value: +"Several notes at once: [{fact, anchor?, tags?}]." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / supersedes / descriptionAdded value: +"Id of a note this one replaces; the old note is retired." - added
Input schema / properties / tags / descriptionAdded value: +"Labels to find it by with recall."
- Removed
remove_repo - Removed
repo_map - Changed
send_agent_message4 fields changed- added
Input schema / properties / anchor / descriptionAdded value: +"The code the message is about: path.py::symbol, path.py, or dir/." - added
Input schema / properties / message / descriptionAdded value: +"What you need them to do or know." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)." - added
Input schema / properties / to / descriptionAdded value: +"A teammate's account email; omit it when anchor is given."
- Changed
setup2 fields changed- added
Input schema / properties / mode / descriptionAdded value: +"enforce (default: the pre-write gate is on), advisory (reporting only), or files (skip the command and return the files)." - added
Input schema / properties / repo_id / descriptionAdded value: +"The repository id, e.g. github.com/org/repo (repo_id in .collide/config.json)."
- Removed
simulate_merge - Removed
switch_workspace
2 tool updates
- Added
claim - Changed
send_agent_message2 fields changed- added
Input schema / properties / anchorAdded value: +{ + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "to", - "message" -]New value: +[ + "repo_id", + "message" +]
1 tool update
- Changed
move_repo2 fields changed- added
Input schema / properties / new_workspaceAdded value: +{ + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "workspace" -]New value: +[ + "repo_id" +]
3 tool updates
- Added
connect_agents - Added
install_hooks - Added
setup
1 tool update
- Changed
plan_work1 field changed- added
Input schema / properties / dispatchAdded value: +{ + "description": "claim every run_now group now and queue the held ones for release", + "type": "boolean" +}
2 tool updates
- Changed
get_symbol1 field changed- changed
Input schema / requiredPrevious value: -[ - "repo_id", - "path", - "symbol" -]New value: +[ + "repo_id", + "path" +]
- Changed
remember2 fields changed- added
Input schema / properties / factsAdded value: +{ + "items": { + "type": "object" + }, + "type": "array" +} - changed
Input schema / requiredPrevious value: -[ - "repo_id", - "fact" -]New value: +[ + "repo_id" +]
9 tool updates
- Removed
check_collisions - Removed
complete_intent - Removed
connect_agents - Changed
get_briefing3 fields changed- added
Input schema / properties / depthAdded value: +{ + "type": "integer" +} - added
Input schema / properties / pathAdded value: +{ + "type": "string" +} - added
Input schema / properties / symbolAdded value: +{ + "type": "string" +}
- Removed
heartbeat - Removed
install_hooks - Removed
report_edit - Removed
setup - Removed
sync_agents_block
1 tool update
- Added
plan_work
34 tool updates
- Changed
blast_radius10 fields changed- removed
Input schema / properties / depth / defaultRemoved value: -3 - removed
Input schema / properties / depth / titleRemoved value: -"Depth" - removed
Input schema / properties / path / descriptionRemoved value: -"Repo-relative file path, e.g. src/app/api.py." - removed
Input schema / properties / path / titleRemoved value: -"Path" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / symbol / defaultRemoved value: -"" - removed
Input schema / properties / symbol / descriptionRemoved value: -"A symbol in the file — function, class, method, or constant name." - removed
Input schema / properties / symbol / titleRemoved value: -"Symbol" - removed
Input schema / titleRemoved value: -"blast_radiusArguments"
- Changed
blind_spots3 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"blind_spotsArguments"
- Changed
check_collisions15 fields changed- removed
Input schema / properties / paths / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / paths / defaultRemoved value: -null - removed
Input schema / properties / paths / descriptionRemoved value: -"Repo-relative file paths this change will touch." - added
Input schema / properties / paths / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / paths / titleRemoved value: -"Paths" - added
Input schema / properties / paths / typeAdded value: +"array" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / symbols_referenced / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / symbols_referenced / defaultRemoved value: -null - removed
Input schema / properties / symbols_referenced / descriptionRemoved value: -"Symbol names your change depends on, for exact-match collision checking." - added
Input schema / properties / symbols_referenced / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / symbols_referenced / titleRemoved value: -"Symbols Referenced" - added
Input schema / properties / symbols_referenced / typeAdded value: +"array" - removed
Input schema / titleRemoved value: -"check_collisionsArguments"
- Changed
complete_intent8 fields changed- removed
Input schema / properties / intent_id / descriptionRemoved value: -"The id returned by declare_intent, identifying the intent to extend or complete." - removed
Input schema / properties / intent_id / titleRemoved value: -"Intent Id" - removed
Input schema / properties / rationale / defaultRemoved value: -"" - removed
Input schema / properties / rationale / descriptionRemoved value: -"Why this change was made and what was rejected; anchored to the changed symbols." - removed
Input schema / properties / rationale / titleRemoved value: -"Rationale" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"complete_intentArguments"
- Changed
compliance_report6 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / since / defaultRemoved value: -0 - removed
Input schema / properties / since / descriptionRemoved value: -"Unix timestamp; include only events after this time (0 = the full window)." - removed
Input schema / properties / since / titleRemoved value: -"Since" - removed
Input schema / titleRemoved value: -"compliance_reportArguments"
- Changed
connect_agents3 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"connect_agentsArguments"
- Changed
declare_intent35 fields changed- removed
Input schema / properties / after / defaultRemoved value: -"" - removed
Input schema / properties / after / descriptionRemoved value: -"Optional: the symbol's intended new signature or state." - removed
Input schema / properties / after / titleRemoved value: -"After" - removed
Input schema / properties / before / defaultRemoved value: -"" - removed
Input schema / properties / before / descriptionRemoved value: -"Optional: the symbol's prior signature or state, for context." - removed
Input schema / properties / before / titleRemoved value: -"Before" - removed
Input schema / properties / change_type / defaultRemoved value: -"" - removed
Input schema / properties / change_type / descriptionRemoved value: -"Legacy prose change type (rename | signature | move | delete | add | refactor); prefer typed operations." - removed
Input schema / properties / change_type / titleRemoved value: -"Change Type" - removed
Input schema / properties / idempotency_key / defaultRemoved value: -"" - removed
Input schema / properties / idempotency_key / descriptionRemoved value: -"Optional client-supplied key so a retried call is not applied twice." - removed
Input schema / properties / idempotency_key / titleRemoved value: -"Idempotency Key" - removed
Input schema / properties / operations / anyOfRemoved value: -[ - { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / operations / defaultRemoved value: -null - removed
Input schema / properties / operations / descriptionRemoved value: -"Typed edit operations — {op, symbol, ...} — enabling provable conflict prediction." - added
Input schema / properties / operations / itemsAdded value: +{ + "type": "object" +} - removed
Input schema / properties / operations / titleRemoved value: -"Operations" - added
Input schema / properties / operations / typeAdded value: +"array" - removed
Input schema / properties / paths / descriptionRemoved value: -"Repo-relative file paths this change will touch." - removed
Input schema / properties / paths / titleRemoved value: -"Paths" - removed
Input schema / properties / ref / defaultRemoved value: -"" - removed
Input schema / properties / ref / descriptionRemoved value: -"Link to an issue or PR (e.g. #123, a URL, or PROJ-42)." - removed
Input schema / properties / ref / titleRemoved value: -"Ref" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / summary / defaultRemoved value: -"" - removed
Input schema / properties / summary / descriptionRemoved value: -"A short human-readable summary of the change." - removed
Input schema / properties / summary / titleRemoved value: -"Summary" - removed
Input schema / properties / symbols / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / symbols / defaultRemoved value: -null - removed
Input schema / properties / symbols / descriptionRemoved value: -"Symbol names referenced by, or being changed in, this edit." - added
Input schema / properties / symbols / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / symbols / titleRemoved value: -"Symbols" - added
Input schema / properties / symbols / typeAdded value: +"array" - removed
Input schema / titleRemoved value: -"declare_intentArguments"
- Changed
defer_intent20 fields changed- removed
Input schema / properties / expires_days / defaultRemoved value: -14 - removed
Input schema / properties / expires_days / descriptionRemoved value: -"How many days until this tripwire or intent expires." - removed
Input schema / properties / expires_days / titleRemoved value: -"Expires Days" - removed
Input schema / properties / note / descriptionRemoved value: -"The tripwire note to leave on the given paths/symbols." - removed
Input schema / properties / note / titleRemoved value: -"Note" - removed
Input schema / properties / paths / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / paths / defaultRemoved value: -null - removed
Input schema / properties / paths / descriptionRemoved value: -"Repo-relative file paths this change will touch." - added
Input schema / properties / paths / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / paths / titleRemoved value: -"Paths" - added
Input schema / properties / paths / typeAdded value: +"array" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / symbols / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / symbols / defaultRemoved value: -null - removed
Input schema / properties / symbols / descriptionRemoved value: -"Symbol names referenced by, or being changed in, this edit." - added
Input schema / properties / symbols / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / symbols / titleRemoved value: -"Symbols" - added
Input schema / properties / symbols / typeAdded value: +"array" - removed
Input schema / titleRemoved value: -"defer_intentArguments"
- Changed
differential_check5 fields changed- removed
Input schema / properties / other_user / descriptionRemoved value: -"The teammate (account email) whose in-flight tree to compare against." - removed
Input schema / properties / other_user / titleRemoved value: -"Other User" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"differential_checkArguments"
- Changed
explain_code9 fields changed- removed
Input schema / properties / path / defaultRemoved value: -"" - removed
Input schema / properties / path / descriptionRemoved value: -"Repo-relative file path, e.g. src/app/api.py." - removed
Input schema / properties / path / titleRemoved value: -"Path" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / symbol / defaultRemoved value: -"" - removed
Input schema / properties / symbol / descriptionRemoved value: -"A symbol in the file — function, class, method, or constant name." - removed
Input schema / properties / symbol / titleRemoved value: -"Symbol" - removed
Input schema / titleRemoved value: -"explain_codeArguments"
- Changed
get_briefing6 fields changed- removed
Input schema / properties / days / defaultRemoved value: -7 - removed
Input schema / properties / days / descriptionRemoved value: -"How many days of history to include." - removed
Input schema / properties / days / titleRemoved value: -"Days" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"get_briefingArguments"
- Changed
get_symbol7 fields changed- removed
Input schema / properties / path / descriptionRemoved value: -"Repo-relative file path, e.g. src/app/api.py." - removed
Input schema / properties / path / titleRemoved value: -"Path" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / symbol / descriptionRemoved value: -"A symbol in the file — function, class, method, or constant name." - removed
Input schema / properties / symbol / titleRemoved value: -"Symbol" - removed
Input schema / titleRemoved value: -"get_symbolArguments"
- Changed
graph_export5 fields changed- removed
Input schema / properties / format / defaultRemoved value: -"graphify" - removed
Input schema / properties / format / titleRemoved value: -"Format" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"graph_exportArguments"
- Changed
graph_import5 fields changed- removed
Input schema / properties / graph / additionalPropertiesRemoved value: -true - removed
Input schema / properties / graph / titleRemoved value: -"Graph" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"graph_importArguments"
- Changed
graph_neighbors10 fields changed- removed
Input schema / properties / depth / defaultRemoved value: -1 - removed
Input schema / properties / depth / titleRemoved value: -"Depth" - removed
Input schema / properties / path / descriptionRemoved value: -"Repo-relative file path, e.g. src/app/api.py." - removed
Input schema / properties / path / titleRemoved value: -"Path" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / symbol / defaultRemoved value: -"" - removed
Input schema / properties / symbol / descriptionRemoved value: -"A symbol in the file — function, class, method, or constant name." - removed
Input schema / properties / symbol / titleRemoved value: -"Symbol" - removed
Input schema / titleRemoved value: -"graph_neighborsArguments"
- Changed
graph_path9 fields changed- removed
Input schema / properties / from_path / titleRemoved value: -"From Path" - removed
Input schema / properties / from_symbol / defaultRemoved value: -"" - removed
Input schema / properties / from_symbol / titleRemoved value: -"From Symbol" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / to_path / titleRemoved value: -"To Path" - removed
Input schema / properties / to_symbol / defaultRemoved value: -"" - removed
Input schema / properties / to_symbol / titleRemoved value: -"To Symbol" - removed
Input schema / titleRemoved value: -"graph_pathArguments"
- Changed
heartbeat5 fields changed- removed
Input schema / properties / intent_id / descriptionRemoved value: -"The id returned by declare_intent, identifying the intent to extend or complete." - removed
Input schema / properties / intent_id / titleRemoved value: -"Intent Id" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"heartbeatArguments"
- Changed
inbox_ack4 fields changed- removed
Input schema / properties / ids / titleRemoved value: -"Ids" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"inbox_ackArguments"
- Changed
install_hooks3 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"install_hooksArguments"
- Changed
list_activity3 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"list_activityArguments"
- Changed
move_repo5 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / workspace / descriptionRemoved value: -"The workspace id to bind this credential to." - removed
Input schema / properties / workspace / titleRemoved value: -"Workspace" - removed
Input schema / titleRemoved value: -"move_repoArguments"
- Changed
open_dashboard21 fields changed- removed
Input schema / properties / interval / defaultRemoved value: -"" - removed
Input schema / properties / interval / descriptionRemoved value: -"Billing interval: monthly or annual." - removed
Input schema / properties / interval / titleRemoved value: -"Interval" - removed
Input schema / properties / path / defaultRemoved value: -"" - removed
Input schema / properties / path / descriptionRemoved value: -"Repo-relative file path, e.g. src/app/api.py." - removed
Input schema / properties / path / titleRemoved value: -"Path" - removed
Input schema / properties / plan / defaultRemoved value: -"" - removed
Input schema / properties / plan / descriptionRemoved value: -"Plan name, for a pricing or checkout link." - removed
Input schema / properties / plan / titleRemoved value: -"Plan" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / seats / defaultRemoved value: -0 - removed
Input schema / properties / seats / descriptionRemoved value: -"Seat count, for a pricing or checkout link." - removed
Input schema / properties / seats / titleRemoved value: -"Seats" - removed
Input schema / properties / section / defaultRemoved value: -"overview" - removed
Input schema / properties / section / descriptionRemoved value: -"Dashboard section to deep-link: overview, activity, change, why, worklog, journal, billing, or pricing." - removed
Input schema / properties / section / titleRemoved value: -"Section" - removed
Input schema / properties / seq / defaultRemoved value: -0 - removed
Input schema / properties / seq / descriptionRemoved value: -"Ledger sequence number, for a change deep-link." - removed
Input schema / properties / seq / titleRemoved value: -"Seq" - removed
Input schema / titleRemoved value: -"open_dashboardArguments"
- Changed
pending_reconciliations8 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / resolve / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / resolve / defaultRemoved value: -null - added
Input schema / properties / resolve / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / resolve / titleRemoved value: -"Resolve" - added
Input schema / properties / resolve / typeAdded value: +"array" - removed
Input schema / titleRemoved value: -"pending_reconciliationsArguments"
- Changed
recall13 fields changed- removed
Input schema / properties / limit / defaultRemoved value: -25 - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / query / defaultRemoved value: -"" - removed
Input schema / properties / query / titleRemoved value: -"Query" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / tags / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / tags / defaultRemoved value: -null - removed
Input schema / properties / tags / descriptionRemoved value: -"Optional labels to categorize this memory." - added
Input schema / properties / tags / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / tags / titleRemoved value: -"Tags" - added
Input schema / properties / tags / typeAdded value: +"array" - removed
Input schema / titleRemoved value: -"recallArguments"
- Changed
recap6 fields changed- removed
Input schema / properties / days / defaultRemoved value: -1 - removed
Input schema / properties / days / descriptionRemoved value: -"How many days of history to include." - removed
Input schema / properties / days / titleRemoved value: -"Days" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"recapArguments"
- Changed
remember17 fields changed- removed
Input schema / properties / anchor / defaultRemoved value: -"" - removed
Input schema / properties / anchor / descriptionRemoved value: -"Pin this memory to specific code: 'path.py::symbol', 'path.py', or 'src/dir/'." - removed
Input schema / properties / anchor / titleRemoved value: -"Anchor" - removed
Input schema / properties / fact / descriptionRemoved value: -"The durable fact or decision to remember." - removed
Input schema / properties / fact / titleRemoved value: -"Fact" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / supersedes / defaultRemoved value: -"" - removed
Input schema / properties / supersedes / descriptionRemoved value: -"The id of a prior memory this note replaces." - removed
Input schema / properties / supersedes / titleRemoved value: -"Supersedes" - removed
Input schema / properties / tags / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / tags / defaultRemoved value: -null - removed
Input schema / properties / tags / descriptionRemoved value: -"Optional labels to categorize this memory." - added
Input schema / properties / tags / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / tags / titleRemoved value: -"Tags" - added
Input schema / properties / tags / typeAdded value: +"array" - removed
Input schema / titleRemoved value: -"rememberArguments"
- Changed
remove_repo6 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / workspace / defaultRemoved value: -"" - removed
Input schema / properties / workspace / descriptionRemoved value: -"The workspace id to bind this credential to." - removed
Input schema / properties / workspace / titleRemoved value: -"Workspace" - removed
Input schema / titleRemoved value: -"remove_repoArguments"
- Changed
repo_map5 fields changed- removed
Input schema / properties / budget / defaultRemoved value: -12 - removed
Input schema / properties / budget / titleRemoved value: -"Budget" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"repo_mapArguments"
- Changed
report_edit18 fields changed- removed
Input schema / properties / content / descriptionRemoved value: -"The full file contents you wrote or are about to write." - removed
Input schema / properties / content / titleRemoved value: -"Content" - removed
Input schema / properties / draft / defaultRemoved value: -false - removed
Input schema / properties / draft / descriptionRemoved value: -"true while composing: broadcast that symbols are in motion without advancing state." - removed
Input schema / properties / draft / titleRemoved value: -"Draft" - removed
Input schema / properties / expected_hashes / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - removed
Input schema / properties / expected_hashes / defaultRemoved value: -null - removed
Input schema / properties / expected_hashes / descriptionRemoved value: -"{symbol: hash} you read, making the write a compare-and-swap that rejects on drift." - removed
Input schema / properties / expected_hashes / titleRemoved value: -"Expected Hashes" - added
Input schema / properties / expected_hashes / typeAdded value: +"object" - removed
Input schema / properties / idempotency_key / defaultRemoved value: -"" - removed
Input schema / properties / idempotency_key / descriptionRemoved value: -"Optional client-supplied key so a retried call is not applied twice." - removed
Input schema / properties / idempotency_key / titleRemoved value: -"Idempotency Key" - removed
Input schema / properties / path / descriptionRemoved value: -"Repo-relative file path, e.g. src/app/api.py." - removed
Input schema / properties / path / titleRemoved value: -"Path" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"report_editArguments"
- Changed
send_agent_message5 fields changed- removed
Input schema / properties / message / titleRemoved value: -"Message" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / to / titleRemoved value: -"To" - removed
Input schema / titleRemoved value: -"send_agent_messageArguments"
- Changed
setup6 fields changed- removed
Input schema / properties / mode / defaultRemoved value: -"enforce" - removed
Input schema / properties / mode / descriptionRemoved value: -"enforce (block the write on a certain collision) or advise (never block)." - removed
Input schema / properties / mode / titleRemoved value: -"Mode" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"setupArguments"
- Changed
simulate_merge8 fields changed- removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / properties / users / anyOfRemoved value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Input schema / properties / users / defaultRemoved value: -null - added
Input schema / properties / users / itemsAdded value: +{ + "type": "string" +} - removed
Input schema / properties / users / titleRemoved value: -"Users" - added
Input schema / properties / users / typeAdded value: +"array" - removed
Input schema / titleRemoved value: -"simulate_mergeArguments"
- Changed
switch_workspace5 fields changed- removed
Input schema / properties / workspace / defaultRemoved value: -"" - removed
Input schema / properties / workspace / descriptionRemoved value: -"The workspace id to bind this credential to." - removed
Input schema / properties / workspace / titleRemoved value: -"Workspace" - added
Input schema / requiredAdded value: +[] - removed
Input schema / titleRemoved value: -"switch_workspaceArguments"
- Changed
sync_agents_block5 fields changed- removed
Input schema / properties / file_content / descriptionRemoved value: -"The full current contents of the file (AGENTS.md for sync_agents_block)." - removed
Input schema / properties / file_content / titleRemoved value: -"File Content" - removed
Input schema / properties / repo_id / descriptionRemoved value: -"Repository id — the git remote (e.g. github.com/acme/api) or a bare folder name; a #branch suffix scopes to that branch." - removed
Input schema / properties / repo_id / titleRemoved value: -"Repo Id" - removed
Input schema / titleRemoved value: -"sync_agents_blockArguments"
Publisher details
- Operator
- Lithometric · Publisher source
- Operator website
- https://collidemcp.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://collidemcp.com/docs · Publisher source
- Trust center
- https://collidemcp.com/compliance · 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
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npmMIT
- AlicenseAqualityCmaintenanceEnables 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.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.