Atisbo
Server Details
MCP tools over one Atisbo workspace: Signals, Opportunities, Backlog, Decisions, Living Documents.
- Status
- Healthy
- Uptime
- 100.0% over 53 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 8 tools
The facade design (each tool bundles many modes) creates real overlap: atisbo_decide, atisbo_map, and atisbo_capture all perform mutations (create/update/delete artefacts, nodes, solutions), and atisbo_lookup, atisbo_analyze, and atisbo_orient all retrieve workspace information. The descriptions add explicit routing hints (e.g. 'Use FIRST for analytical questions', taxonomy vs structural maps) that mitigate confusion, but an agent must parse dense mode-level guidance to choose correctly.
Every tool follows the identical pattern of the atisbo_ prefix plus a single lowercase verb (analyze, capture, connect, decide, lookup, map, orient, support). No mixed conventions or casing deviations across the set.
Eight tools is well-scoped for a broad signal/knowledge platform, and the facade approach deliberately consolidates many operations into a small, manageable surface. No tool feels redundant in count and none is trivially thin.
The surface covers ingestion (connect), capture, retrieval/lookup, analytics, mapping, decision lifecycle, orientation, and diagnostics, with delete/update paths embedded in facades. Minor ambiguity remains about whether some lifecycle operations (e.g. explicit deletion or outcome retrieval) are fully reachable, but core workflows appear covered.
Available Tools
8 toolsatisbo_analyzeARead-onlyInspect
Broad analytical query over claims, solutions, or activity: time filters, grouping, metrics, ready-to-render chart artifact. Use FIRST for analytical questions spanning entities or time windows; a single-entity drill-down is atisbo_lookup mode=get with the entity id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max grouped rows; over-asks clamp. | |
| cursor | No | From stream.next_cursor — pages grouped rows beyond `limit`. | |
| domain | No | Free-text product area, resolved to map nodes. | |
| filters | No | Filters: AND across fields, OR within a field. | |
| metrics | No | Aggregate metrics per group (1-4). | |
| subject | No | claims (opportunities), solutions, or activity (decisions + events). | |
| analysis | No | summary, table, or chart kind (bar/line/scatter); trend=line. | |
| group_by | No | Row grouping dimensions (1-2). | |
| time_range | No | 7d/30d/90d preset or from/to ISO dates; default 30d. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true / destructiveHint=false, so safety is covered; the description adds output behavior the annotations do not carry, namely that it returns a 'ready-to-render chart artifact' and offers grouping/metric aggregation. It stops short of disclosure on pagination or result-size limits despite a cursor/limit interface.
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, no filler. The capability statement comes first and the routing rule follows, so the most decision-relevant information is front-loaded.
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?
An output schema exists, so return-value detail is unnecessary in the description, and the annotation covers safety. What remains slightly thin is the filter/metric vocabulary (left entirely to the schema) and any note on grouping cardinality or pagination limits, but nothing an agent needs to select and invoke 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%, and the schema already documents limit, cursor, domain, filters, metrics, subject, analysis, group_by, and time_range in detail. The description restates the parameter categories at a high level (time filters, grouping, metrics) without adding format or semantics beyond the schema; baseline 3 applies when the schema does the heavy lifting.
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 (analytical query) and the exact resource set (claims, solutions, activity), plus its breadth (time filters, grouping, metrics, chart artifact). It explicitly contrasts itself with the sibling atisbo_lookup, so an agent can route without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit selection rule: 'Use FIRST for analytical questions spanning entities or time windows,' and names the alternative for the opposite case ('single-entity drill-down is atisbo_lookup mode=get with the entity id'). Both the when-to-use and the when-to-use-something-else are stated outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_captureDestructiveInspect
Capture Signals or knowledge; update, patch or add evidence to artefacts.
| Name | Required | Description | Default |
|---|---|---|---|
| ops | No | ||
| body | No | ||
| mode | Yes | Capture mode. Notes per mode in meta.guidance. | |
| note | No | Why it matters. | |
| text | No | Signal text. | |
| items | No | Batch; max 100 items. | |
| title | No | Knowledge title. | |
| source | No | Signal source. | |
| content | No | Knowledge content. | |
| message | No | ||
| node_id | No | knowledge: alias for scope_id. | |
| patches | No | ||
| category | No | knowledge: label hint ≤60 chars. | |
| claim_id | No | knowledge: alias for scope_id. | |
| document | No | signal: backing doc → claim-scoped Knowledge. | |
| evidence | No | Evidence fields; document_id top-level. | |
| modality | No | Q=Quote, O=Observation, M=Metric; else inferred. | |
| patchOps | No | ||
| scope_id | No | Target scope UUID; required for node/claim/map (solution: omit/"auto"). | |
| file_name | No | ||
| mime_type | No | ||
| patch_ops | No | ||
| agent_name | No | ||
| scope_type | No | Scope kind; company = workspace. | |
| attachments | No | 1-5 files; 3 MB combined. | |
| document_id | No | Living document UUID (artefact modes). | |
| solution_id | No | knowledge: alias for scope_id. | |
| capture_mode | No | Knowledge routing. | |
| captured_from | No | ||
| change_summary | No | patch_artefact: REQUIRED — change_summary (or note), one sentence of what changed. | |
| classification | No | Signal classification hint. | |
| dirty_event_id | No | Dirty event resolved | |
| knowledge_kind | No | ||
| coverage_updates | No | buckets snippets/ideas/claims; snippets[].{snippet_id,status,rationale} | |
| client_request_id | No | signal: retry key. | |
| proposed_solution | No | signal: draft Solution born linked on the clustered claim. | |
| expected_content_hash | No | doc_patch_context content_hash | |
| corrects_prior_evidence | No | signal: CORRECTS prior evidence — skips dedup (when/why in meta.guidance). |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
atisbo_connectADestructiveInspect
WHERE Atisbo gets its signals. Modes: list, catalog, create (returns endpoint), configure, pause, resume, sync_now, delete (soft-disconnect). THE CATALOG IS NOT THE BOUNDARY: almost anything connects (push app, daily-pull app, raw webhook/email) — call catalog and read fallback before ever saying "Atisbo cannot ingest that". Atisbo only READS a connected system. create returns endpoint + signing secret shown ONCE — relay to the human immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | mode=create: "email" provisions the ingest address; default webhook. | |
| mode | No | list/catalog need no ids; others need connection_id or create fields. | |
| label | No | create/configure: human name for the source, e.g. "Freshdesk". | |
| query | No | mode=catalog only: filter by name, category or description. | |
| config | No | create with provider: catalog required_fields; stored encrypted. | |
| toolkit | No | composio action modes: Composio app slug (e.g. "freshdesk"). | |
| provider | No | mode=create: NATIVE provider from catalog native_providers (with config). | |
| pull_tool | No | composio_create: read-only daily action from composio_actions. | |
| recipe_id | No | mode=create: catalog recipe id — applies its curated mapping. | |
| json_paths | No | create/configure: dotted paths into the payload body. | |
| rate_limit | No | create/configure: max requests/min accepted. Default 100. | |
| sync_every | No | PULL sources only: cadence. Default daily. | |
| trigger_slug | No | composio_create, INSTANT apps: trigger from composio_catalog. | |
| connection_id | No | Connection id (mode=list); required by configure/pause/resume/sync_now/delete. | |
| pull_arguments | No | composio_create with pull_tool: action arguments. | |
| collection_path | No | composio_create + pull_tool: dotted path to the record array. | |
| source_category | No | mode=create with your own mapping: what the payload carries. | |
| skip_attribution | No | create: anonymous public-forum sources have no attributable customer. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=true) already flag this as a mutating, potentially destructive tool, and the description reinforces this with "delete (soft-disconnect)" and the one-time-secret disclosure for create, which is genuinely useful operational context. The "Atisbo only READS a connected system" line describes the connected system, not this tool, but it does not contradict the annotations. It stops short of explaining rollback/irreversibility of soft-disconnect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded — it leads with the resource's role, then the mode set, then the two critical behavioral caveats (catalog is not the boundary; secret shown once). Capitalized emphasis is heavy but the sentences each carry information rather than 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?
With an output schema present and annotations covering the safety profile, the description's job is to cover intent and routing, which it does: modes, catalog fallback, and secret handling. It is complete enough to call correctly, though a multi-mode tool with 18 parameters could benefit from brief mode-to-parameter mapping guidance.
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% and each of the 18 parameters is individually documented, so the schema carries the parameter burden and 3 is the appropriate baseline. The description adds only mode-level prose about create/delete behavior, not per-parameter syntax or format meaning beyond what the schema already states.
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 names the resource concretely ("WHERE Atisbo gets its signals") and enumerates all operational modes (list, catalog, create, configure, pause, resume, sync_now, delete), so an agent knows this is the connection-management entry point. It does not differentiate from the sibling tools by name, but those siblings (analyze/capture/decide/lookup/map/orient/support) have no overlapping surface, so the gap is minor.
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 a clear call-order instruction — "call catalog and read `fallback` before ever saying 'Atisbo cannot ingest that'" — and an operational directive to relay the signing secret to a human immediately. What's missing is any when-not guidance or explicit routing among the sibling tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_decideDestructiveInspect
PM decision facade. CURATE: evidence review/grouping, deal-breakers. EXECUTE: create, update, dispatch or delete Solutions, record Outcomes. DOCUMENT/GOVERN: living docs, coverage, schedules, knowledge, strategy. log_decision is only for external decisions; mutations log themselves. Writes require UUIDs. mode=declare_pm_exception marks a CLAIM as needing a human decision.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | delete_knowledge/set_knowledge_category doc id. | |
| mode | Yes | Resolve names to UUIDs before mutating; notes per mode in meta.guidance. | |
| note | No | record_outcome 5000; triage/log_decision rationale 2000. | |
| spec | No | ||
| brief | No | dispatch_solution: agent brief. | |
| force | No | Audited source-deleting reassignment (omit refused). | |
| title | No | ||
| effort | No | Size estimate, person-weeks (never affects order). | |
| matrix | No | validate_delivery / deliver: one entry per criterion. | |
| pr_url | No | ||
| status | No | Target classification. | |
| comment | No | update_solution / deliver: thread report as the agent. | |
| mission | No | update_strategy: informational only. | |
| node_id | No | ||
| outcome | No | record_outcome: launch impact. | |
| roadmap | No | update_strategy: informational only. | |
| verdict | No | triage closes; log_decision takes the judgement answer. | |
| category | No | label to set; null clears. | |
| claim_id | No | Claim UUID (atisbo_lookup mode=resolve) | |
| decision | No | max 500 chars. | |
| strategy | No | update_strategy: the only functional field. | |
| unassign | No | ||
| claim_ids | No | ||
| kpi_after | No | ||
| lifecycle | No | IDEA|DESIGNING|IN_DEVELOPMENT; LAUNCHED only via update_solution. | |
| target_id | No | ||
| agent_name | No | Signs comments/assignments/decisions. | |
| kpi_before | No | ||
| risk_notes | No | Unresolved contradictions acknowledged by id. | |
| snippet_id | No | ||
| updated_at | No | Optimistic lock; stale edits fail STALE_DATA. | |
| description | No | ||
| document_id | No | ||
| instruction | No | ||
| observed_at | No | ||
| review_kind | No | ||
| snooze_days | No | ||
| solution_id | No | Solution UUID (from a name or SEN-n: atisbo_lookup mode=resolve) | |
| target_type | No | ||
| alternatives | No | ||
| out_of_scope | No | check_coverage: ids intentionally NOT addressed. | |
| product_name | No | ||
| snooze_clear | No | ||
| clear_discard | No | ||
| covered_ideas | No | check_coverage: idea ids in the coverage map. | |
| decision_type | No | log_decision: e.g. product_decision, note; full list in the error. | |
| evidence_refs | No | record_outcome: durable evidence refs. | |
| main_features | No | ||
| assign_node_id | No | update_solution: taxonomy node. | |
| covered_claims | No | check_coverage: claim ids this work implements. | |
| design_context | No | ||
| discard_reason | No | Divergence loser (ADR-224); CANCELED required. | |
| force_reassign | No | Audited takeover of a Solution in progress. | |
| metric_current | No | record_outcome (automated): fresh metric reading. | |
| pm_instruction | No | update_strategy: the PM's request, quoted. | |
| priority_boost | No | PM multiplier over evidence-weighted priority. | |
| assign_to_agent | No | update_solution: take ownership. | |
| is_deal_breaker | No | true = confirm/flag, false = reject/unflag. | |
| target_claim_id | No | Claim UUID (atisbo_lookup mode=resolve) | |
| attach_claim_ids | No | ||
| coverage_updates | No | deliver: buckets snippets/ideas/claims. | |
| detach_claim_ids | No | ||
| refresh_schedule | No | ||
| criteria_left_out | No | Criteria left OUT (ADR-234); only with LAUNCHED. | |
| expected_behavior | No | check_coverage: observable behavior delivered. | |
| replace_confirmed | No | true confirms a shorter recorded delivery matrix replacing a longer one. | |
| snooze_indefinite | No | until NEW EVIDENCE (not a timer). | |
| chosen_solution_id | No | update_solution: the winning sibling. | |
| clear_pm_exception | No | ||
| outcome_confidence | No | ||
| pm_exception_reason | No | a PERSON's choice + alternatives; blockers → operational_block_reason. | |
| verification_method | No | record_outcome: how verified (max 500 chars). | |
| contradictions_found | No | record_outcome (automated): attest a contradiction sweep. | |
| clear_operational_block | No | ||
| criteria_left_out_reason | No | Why each is out; required with criteria_left_out. | |
| operational_block_reason | No | update_solution: operational blocker; not a decision. | |
| operational_block_category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No |
atisbo_lookupCRead-onlyInspect
Find or open Atisbo entities: snippets, queues, outcomes and implementation context across modes.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | open: handle ref (claim:UUID, snippet://UUID). | |
| mode | Yes | Named by its enum value (notes: meta.guidance). | |
| refs | No | open: several refs (max 10). | |
| type | No | claims: classification. | |
| view | No | work_queue: ONE bucket, complete. | |
| depth | No | summary=compact; work=full (default); evidence (claims)=evidence+decisions, no score internals. | |
| focus | No | claims: agent_work | all. | |
| limit | No | Max results (1–200); page with next_cursor. | |
| query | No | Topic search: claims/solutions/knowledge/context; resolve: name→id. | |
| scope | No | Scope for context / living_doc list. | |
| state | No | work tokens (todo=DESIGNING); post-launch kinds. | |
| types | No | resolve: entity kinds. | |
| cursor | No | Cursor from a prior response. | |
| entity | No | get: which kind the id field names. | |
| map_id | No | Map UUID (mode=get). | |
| status | No | Status filter. | |
| node_id | No | Node UUID (get; claims/solutions filter). | |
| sort_by | No | Solution order (evidence-weighted × boost). | |
| anchored | No | Claim list anchoring filter. | |
| category | No | knowledge: exact category filter. | |
| claim_id | No | Claim UUID (atisbo_lookup mode=resolve) | |
| scope_id | No | Scope UUID (omit for company/workspace). | |
| lifecycle | No | Solution lifecycle filters. | |
| target_id | No | UUID for claim/solution/node/map/doc. | |
| agent_name | No | solutions: rows HELD by this agent. | |
| command_id | No | receipts: probe one write by a listed receipt key; omit = latest 25. | |
| scope_type | No | Alias of scope; workspace=company. | |
| claim_state | No | Claim state; open=untouched. | |
| debug_score | No | get claim: PowerScore breakdown. | |
| document_id | No | Living document UUID. | |
| review_kind | No | unreviewed only — see atisbo_decide mark_reviewed. | |
| solution_id | No | Solution UUID (from a name or SEN-n: atisbo_lookup mode=resolve) | |
| action_cursor | No | work_queue action_queue cursor; restart after mutations. | |
| content_limit | No | ||
| include_stale | No | claims: include stale claims. | |
| content_offset | No | ||
| dirty_event_id | No | doc_patch_context: loads this event's snippets. | |
| evidence_limit | No | get claim: evidence page one (1–25); cursor for the rest. | |
| triage_outcome | No | claims: triage verdict; review=pending; processing=in-flight. | |
| exception_cursor | No | pages pm_exceptions. | |
| judgement_cursor | No | pages needs_judgement. | |
| operational_block_cursor | No | work_queue: pages operational_blocks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds little beyond 'find or open' – it doesn't disclose pagination behavior (cursor params exist), rate limits, return shapes, or how the 20 modes differ behaviorally. With 42 parameters and 20 modes, the description carries too little 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?
The description is a single sentence with no waste, but it is under-specified rather than concise. Front-loading is fine, yet the sentence is too vague to be useful for a tool of this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 42 parameters, 20 modes, an output schema, and complex sibling interactions, the description is far too sparse. It doesn't explain mode selection, return values, or how to navigate the many filters. The output schema covers return shape, but the description should do more to orient the agent on mode usage.
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 95%, so the schema already documents parameters well. The description adds no parameter-level meaning beyond 'across modes' – it doesn't explain how mode interacts with ref, query, or the many mode-specific filters. Baseline for high coverage is 3, but this description adds nothing beyond the schema, so a 2 is warranted.
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 says 'Find or open Atisbo entities: snippets, queues, outcomes and implementation context across modes' – a vague list of resources and a reference to 'modes' without explaining what each mode does. It doesn't distinguish this tool from siblings like atisbo_orient or atisbo_analyze, and 'Atisbo entities' is jargon an agent can't resolve from the description alone.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no explanation of the 20 modes. The description merely mentions 'across modes' but gives no selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_mapDestructiveInspect
Map facade: create/apply maps, generate/edit nodes and edges, anchor claims/snippets, bind metrics, manage claim-snipe maps, regroup (merge/split), build_macros (macros, preview first). Prefer mode=apply for full MECE categorization. TWO WAYS to put a claim on a node, NOT interchangeable: mode=anchor sets the TAXONOMY category (auto_node_id); mode=link_claims adds STRUCTURAL-map membership (claim keeps its category). Both refuse the wrong map kind.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Per-mode notes in meta.guidance. | |
| name | No | Map, node, or metric name. | |
| note | No | link_claims: rationale stored on every link. | |
| label | No | ||
| level | No | Node hierarchy depth. | |
| map_id | No | Map UUID. | |
| anchors | No | Batch claim anchors. | |
| edge_id | No | Edge UUID for delete_edge mode. | |
| node_id | No | Node UUID. | |
| preview | No | regroup / build_macros: read-only preview: run first. | |
| branches | No | Branches for apply mode. | |
| claim_id | No | Claim UUID (atisbo_lookup mode=resolve) | |
| map_type | No | ||
| provider | No | Metric provider: posthog, amplitude, stripe, manual… | |
| template | No | ||
| claim_ids | No | link_claims: claims to place under node_id. | |
| direction | No | regroup: broader merges; specific splits. | |
| edge_type | No | ||
| new_level | No | New depth after a move. | |
| parent_id | No | Parent node UUID. | |
| binding_id | No | metric_update: binding id (lookup get, metrics[].id). | |
| event_name | No | ||
| snippet_id | No | ||
| updated_at | No | metric_update: updated_at from your last read (stale edits fail). | |
| assignments | No | ||
| description | No | Map/node/branch description. | |
| metric_name | No | ||
| metric_type | No | ||
| target_value | No | ||
| current_value | No | metric_update: today's value; same-day re-entry replaces it. | |
| grouping_mode | No | ||
| new_parent_id | No | Move target parent; null promotes to root. | |
| regroup_level | No | regroup broader: merge aggressiveness. | |
| source_map_id | No | ||
| branch_options | No | ||
| source_node_id | No | ||
| target_node_id | No | ||
| workspace_wide | No | regroup: explicit YES to run WORKSPACE-WIDE (refused without). | |
| context_answers | No | Grounding answers for AI map generation. | |
| historical_data | No | metric_update: full series REPLACEMENT (omit = append now). | |
| time_range_days | No | ||
| target_threshold | No | regroup direction=specific: split threshold. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No |
atisbo_orientARead-onlyInspect
Workspace orientation. Modes: snapshot, whats_new, strategy, integrations. Continue the user's existing workflow; never create a parallel backlog. Living docs cite snippet:// refs — open with atisbo_lookup mode=open, full corpus via claim depth=work, aggregates via atisbo_analyze. Edit via atisbo_lookup mode=doc_patch_context then atisbo_capture mode=patch_artefact.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | snapshot (alias: workspace)=task; whats_new=since_checkpoint; strategy/integrations none. | |
| task | No | triage=untriaged inbox; planning=confirmed opportunities by priority; operations=signals & integrations; executive=KPIs & strategy. | |
| depth | No | summary=compact; work=full (default). | |
| limit | No | Max items. snapshot clamps to 20; whats_new to 50. | |
| cursor | No | Pagination cursor. | |
| since_checkpoint | No | ISO 8601 checkpoint for delta reads. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the genuine behavioral rule about not creating a parallel backlog and tells the agent that docs contain snippet:// refs requiring resolution, but says nothing about return shape or pagination behavior (beyond what the output schema covers).
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 in two words and is dense with no filler, though the middle sentences pack several cross-tool workflow instructions into telegraphic fragments that take a second read to parse.
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 an output schema present and full schema coverage, the description only needs to convey purpose and workflow context, which it does. The one gap is that it never states the precondition for invoking orient in the first place, relying on the agent to infer it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (mode, task, depth, limit, cursor, since_checkpoint) is already documented in the schema, including enum meanings and limit clamps. The description restates the mode names but adds no syntax or format detail beyond the schema — baseline 3.
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 action ('Workspace orientation') and enumerates the four modes, which maps to the mode enum. It doesn't sharply distinguish orient from siblings like atisbo_map or atisbo_analyze, but the mode list and routing hints make the tool's role inferable.
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 to continue the user's existing workflow and never create a parallel backlog, and routes follow-up work to named alternatives (atisbo_lookup mode=open for snippet refs, atisbo_analyze for aggregates, atisbo_capture mode=patch_artefact for edits). It lacks an explicit statement of when to call orient itself versus those siblings (e.g. session start), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_supportARead-onlyInspect
Diagnose Atisbo, including "I connected a source and nothing appeared", "I sent text and no opportunity formed", or "my data is missing". Checks integrations, ingestion, clustering, gates and key scope, then returns a playbook. share_report files only diagnostics + your text. Use atisbo_lookup/atisbo_analyze for backlog.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Narrows the checks. Omit when unsure — the full set costs the same. | |
| problem | Yes | What went wrong, in your words. No customer feedback, docs or credentials — the string IS filed in reports. | |
| share_report | No | File a verdict-only report when the fault is not caller-side; false = diagnose. | |
| observed_error | No | The failing error VERBATIM — diagnostics cannot see the failed call; usually the only evidence. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | Yes | |
| meta | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds non-obvious behavior: it returns a playbook, and share_report files only diagnostics plus the caller's text. That privacy/scope disclosure is real value beyond the structured fields. It does not, however, describe latency or what the playbook contains, so it is not exhaustive.
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 verb and purpose, then the symptom examples that drive matching, then the routing constraint, then the privacy caveat. Every sentence carries distinct information; the quoted examples are load-bearing for intent matching rather than 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 4-parameter diagnostic tool with an output schema, full schema coverage, and safety annotations already present, the description supplies the remaining needed context: what it checks, when to invoke it, what it returns, and what data leaves the system. 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 the baseline is 3; the description lifts this slightly by clarifying share_report's side effect scope ('files only diagnostics + your text') and reinforcing that observed_error is usually the only evidence and the problem string is filed. Much of the parameter context duplicates the schema, so the gain over baseline is modest.
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?
Names a specific verb (Diagnose) and resource (Atisbo), enumerates the exact symptom classes it handles in user phrasing, and lists the subsystems it checks (integrations, ingestion, clustering, gates, key scope). It also names the sibling tools it is not (atisbo_lookup/atisbo_analyze for backlog), so an agent can separate it from the rest of the family without reading schemas.
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 trigger scenarios ('I connected a source and nothing appeared', 'my data is missing') and routes backlog-style questions to atisbo_lookup/atisbo_analyze. The alternative routing is terse ('for backlog') and no other exclusions or prerequisites are stated, so it stops short of fully explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
atisbo_decide2 fields changed- added
Input schema / properties / decision / descriptionAdded value: +"max 500 chars." - added
Input schema / properties / decision / maxLengthAdded value: +500
2 tool updates
- Changed
atisbo_capture1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"knowledge: free-form category label ≤60 chars."New value: +"knowledge: label hint ≤60 chars."
- Changed
atisbo_map5 fields changed- changed
Input schema / properties / binding_id / descriptionPrevious value: -"metric_update: binding id (atisbo_lookup mode=get, metrics[].id)."New value: +"metric_update: binding id (lookup get, metrics[].id)." - changed
Input schema / properties / mode / descriptionPrevious value: -"Notes per mode in meta.guidance."New value: +"Per-mode notes in meta.guidance." - changed
Input schema / properties / mode / enumPrevious value: -[ - "apply", - "create", - "rename", - "delete", - "generate_nodes", - "create_node", - "update_node", - "delete_node", - "anchor", - "create_edge", - "delete_edge", - "metric_bind", - "metric_update", - "preview_claim_snipes", - "sync_claim_snipes", - "regroup", - "link_claims" -]New value: +[ + "apply", + "create", + "rename", + "delete", + "generate_nodes", + "create_node", + "update_node", + "delete_node", + "anchor", + "create_edge", + "delete_edge", + "metric_bind", + "metric_update", + "preview_claim_snipes", + "sync_claim_snipes", + "regroup", + "link_claims", + "build_macros" +] - changed
Input schema / properties / preview / descriptionPrevious value: -"regroup: read-only preview — ALWAYS run it first."New value: +"regroup / build_macros: read-only preview: run first." - changed
Input schema / properties / workspace_wide / descriptionPrevious value: -"regroup: explicit YES to run WORKSPACE-WIDE (refused without it)."New value: +"regroup: explicit YES to run WORKSPACE-WIDE (refused without)."
1 tool update
- Changed
atisbo_decide5 fields changed- changed
Input schema / properties / force / descriptionPrevious value: -"Confirms a source-deleting reassignment; omit = CONFIRMATION_REQUIRED."New value: +"Audited source-deleting reassignment (omit refused)." - changed
Input schema / properties / note / descriptionPrevious value: -"record_outcome narrative 5000; triage/log_decision rationale 2000."New value: +"record_outcome 5000; triage/log_decision rationale 2000." - changed
Input schema / properties / replace_confirmed / descriptionPrevious value: -"true confirms replacing a longer recorded delivery matrix with a shorter one."New value: +"true confirms a shorter recorded delivery matrix replacing a longer one." - changed
Input schema / properties / verdict / descriptionPrevious value: -"mode=triage: BOTH values close the claim — see guidance."New value: +"triage closes; log_decision takes the judgement answer." - changed
Input schema / properties / verdict / enumPrevious value: -[ - "real_fixed", - "noise" -]New value: +[ + "real_fixed", + "noise", + "proceed", + "defer", + "drop" +]
1 tool update
- Changed
atisbo_lookup1 field changed- changed
Input schema / properties / status / enumPrevious value: -[ - "active", - "all", - "archived" -]New value: +[ + "active", + "all", + "archived", + "noise" +]
8 tool updates
- Changed
atisbo_analyze10 fields changed- changed
Input schema / properties / analysis / descriptionPrevious value: -"summary (prose), table, or chart kind (bar/line/scatter); trend aliases line."New value: +"summary, table, or chart kind (bar/line/scatter); trend=line." - changed
Input schema / properties / filters / properties / signal_origin / descriptionPrevious value: -"customer | internal | operational — separates what `sources` cannot (claim matches if ANY snippet matches)."New value: +"customer | internal | operational — claim matches if ANY snippet does." - changed
Input schema / properties / filters / properties / sources / descriptionPrevious value: -"Transport, not provenance (captures store `manual`); claim/solution aggregates ignore it."New value: +"Transport, not provenance; claim/solution aggregates ignore it." - changed
Input schema / properties / subject / descriptionPrevious value: -"Dataset: claims (opportunities), solutions, or activity (decisions + events)."New value: +"claims (opportunities), solutions, or activity (decisions + events)." - changed
Input schema / properties / time_range / descriptionPrevious value: -"Preset (7d/30d/90d) or explicit from/to ISO dates. Defaults to 30d."New value: +"7d/30d/90d preset or from/to ISO dates; default 30d." - changed
Input schema / properties / time_range / properties / preset / descriptionPrevious value: -"Relative time window preset."New value: +"Relative window preset." - changed
Output schema / properties / data / properties / artifact / properties / artifact_data / properties / resolved_query / properties / analysis / descriptionPrevious value: -"summary (prose), table, or chart kind (bar/line/scatter); trend aliases line."New value: +"summary, table, or chart kind (bar/line/scatter); trend=line." - changed
Output schema / properties / data / properties / artifact / properties / artifact_data / properties / resolved_query / properties / subject / descriptionPrevious value: -"Dataset: claims (opportunities), solutions, or activity (decisions + events)."New value: +"claims (opportunities), solutions, or activity (decisions + events)." - changed
Output schema / properties / data / properties / resolved_query / properties / analysis / descriptionPrevious value: -"summary (prose), table, or chart kind (bar/line/scatter); trend aliases line."New value: +"summary, table, or chart kind (bar/line/scatter); trend=line." - changed
Output schema / properties / data / properties / resolved_query / properties / subject / descriptionPrevious value: -"Dataset: claims (opportunities), solutions, or activity (decisions + events)."New value: +"claims (opportunities), solutions, or activity (decisions + events)."
- Changed
atisbo_capture5 fields changed- changed
Input schema / properties / corrects_prior_evidence / descriptionPrevious value: -"signal: CORRECTS prior evidence, not a repeat (skips dedup; when/why in meta.guidance)."New value: +"signal: CORRECTS prior evidence — skips dedup (when/why in meta.guidance)." - changed
Input schema / properties / coverage_updates / descriptionPrevious value: -"buckets snippets/ideas/claims; snippets[].{snippet_id, status, rationale}"New value: +"buckets snippets/ideas/claims; snippets[].{snippet_id,status,rationale}" - added
Input schema / properties / documentAdded value: +{ + "description": "signal: backing doc → claim-scoped Knowledge.", + "properties": { + "content": { + "maxLength": 20000, + "minLength": 10, + "type": "string" + }, + "file_name": { + "maxLength": 200, + "type": "string" + }, + "mime_type": { + "enum": [ + "text/html", + "text/markdown" + ], + "type": "string" + } + }, + "required": [ + "content" + ], + "type": "object" +} - added
Input schema / properties / proposed_solutionAdded value: +{ + "description": "signal: draft Solution born linked on the clustered claim.", + "properties": { + "description": { + "maxLength": 2000, + "type": "string" + }, + "title": { + "maxLength": 200, + "type": "string" + } + }, + "required": [ + "title" + ], + "type": "object" +} - changed
Input schema / properties / scope_id / descriptionPrevious value: -"Target scope UUID; required for node/claim/map. On scope_type=solution (mode=knowledge), omit it or pass \"auto\": Atisbo routes the detail to an open Solution."New value: +"Target scope UUID; required for node/claim/map (solution: omit/\"auto\")."
- Changed
atisbo_connect9 fields changed- changed
Input schema / properties / collection_path / descriptionPrevious value: -"composio_create with pull_tool: dotted path to the record array if not inferable."New value: +"composio_create + pull_tool: dotted path to the record array." - changed
Input schema / properties / config / descriptionPrevious value: -"mode=create with provider: catalog required_fields. Stored encrypted, never readable again."New value: +"create with provider: catalog required_fields; stored encrypted." - changed
Input schema / properties / connection_id / descriptionPrevious value: -"Connection id from mode=list; required for configure/pause/resume/sync_now/delete."New value: +"Connection id (mode=list); required by configure/pause/resume/sync_now/delete." - changed
Input schema / properties / json_paths / descriptionPrevious value: -"create/configure: dotted paths into the POSTed payload's JSON body."New value: +"create/configure: dotted paths into the payload body." - changed
Input schema / properties / provider / descriptionPrevious value: -"mode=create: NATIVE provider from catalog native_providers. Pair with config."New value: +"mode=create: NATIVE provider from catalog native_providers (with config)." - changed
Input schema / properties / pull_tool / descriptionPrevious value: -"composio_create, DAILY apps: read-only action from composio_actions."New value: +"composio_create: read-only daily action from composio_actions." - changed
Input schema / properties / rate_limit / descriptionPrevious value: -"create/configure: max requests per minute accepted. Default 100."New value: +"create/configure: max requests/min accepted. Default 100." - changed
Input schema / properties / skip_attribution / descriptionPrevious value: -"mode=create: true for anonymous public-forum sources with no attributable customer."New value: +"create: anonymous public-forum sources have no attributable customer." - changed
Input schema / properties / toolkit / descriptionPrevious value: -"composio_actions / composio_create: Composio app slug (e.g. \"freshdesk\", \"jira\")."New value: +"composio action modes: Composio app slug (e.g. \"freshdesk\")."
- Changed
atisbo_decide13 fields changed- changed
Input schema / properties / claim_id / descriptionPrevious value: -"Claim UUID (from a name: atisbo_lookup mode=resolve)"New value: +"Claim UUID (atisbo_lookup mode=resolve)" - changed
Input schema / properties / criteria_left_out / descriptionPrevious value: -"update_solution: criteria left OUT (ADR-234); only with LAUNCHED."New value: +"Criteria left OUT (ADR-234); only with LAUNCHED." - changed
Input schema / properties / discard_reason / descriptionPrevious value: -"update_solution: divergence loser (ADR-224); CANCELED required."New value: +"Divergence loser (ADR-224); CANCELED required." - changed
Input schema / properties / effort / descriptionPrevious value: -"Size estimate, person-weeks; sizing only, never affects order."New value: +"Size estimate, person-weeks (never affects order)." - changed
Input schema / properties / force_reassign / descriptionPrevious value: -"dispatch_solution: audited takeover of a Solution in progress."New value: +"Audited takeover of a Solution in progress." - changed
Input schema / properties / is_deal_breaker / descriptionPrevious value: -"deal_breaker: true = confirm/flag, false = reject/unflag."New value: +"true = confirm/flag, false = reject/unflag." - changed
Input schema / properties / mode / enumPrevious value: -[ - "triage", - "rename_claim", - "delete_claim", - "combine_claims", - "reassign_snippet", - "create_claim_from_snippet", - "split_snippet", - "create_solution", - "create_living_doc", - "update_solution", - "dispatch_solution", - "record_outcome", - "delete_solution", - "apply_solution_spec", - "update_strategy", - "log_decision", - "update_artefact_schedule", - "create_solution_doc", - "deal_breaker", - "declare_pm_exception", - "delete_knowledge", - "set_knowledge_category", - "set_claim_review_status", - "set_snippet_status", - "check_coverage", - "mark_reviewed", - "validate_delivery", - "deliver" -]New value: +[ + "triage", + "rename_claim", + "delete_claim", + "combine_claims", + "reassign_snippet", + "create_claim_from_snippet", + "split_snippet", + "create_solution", + "create_living_doc", + "update_solution", + "dispatch_solution", + "record_outcome", + "delete_solution", + "apply_solution_spec", + "update_strategy", + "log_decision", + "update_artefact_schedule", + "create_solution_doc", + "deal_breaker", + "declare_pm_exception", + "delete_knowledge", + "set_knowledge_category", + "set_claim_review_status", + "set_snippet_status", + "snooze_claim", + "check_coverage", + "mark_reviewed", + "validate_delivery", + "deliver" +] - changed
Input schema / properties / pm_exception_reason / descriptionPrevious value: -"update_solution / declare_pm_exception: a PERSON's decision; ops in operational_block_reason."New value: +"a PERSON's choice + alternatives; blockers → operational_block_reason." - changed
Input schema / properties / priority_boost / descriptionPrevious value: -"update_solution: PM multiplier over evidence-weighted priority."New value: +"PM multiplier over evidence-weighted priority." - changed
Input schema / properties / replace_confirmed / descriptionPrevious value: -"validate_delivery / deliver: true confirms replacing a longer recorded matrix with a shorter one."New value: +"true confirms replacing a longer recorded delivery matrix with a shorter one." - changed
Input schema / properties / risk_notes / descriptionPrevious value: -"check_coverage: unresolved contradictions acknowledged by id."New value: +"Unresolved contradictions acknowledged by id." - added
Input schema / properties / snooze_indefiniteAdded value: +{ + "description": "until NEW EVIDENCE (not a timer).", + "type": "boolean" +} - changed
Input schema / properties / target_claim_id / descriptionPrevious value: -"Claim UUID (from a name: atisbo_lookup mode=resolve)"New value: +"Claim UUID (atisbo_lookup mode=resolve)"
- Changed
atisbo_lookup18 fields changed- changed
Input schema / properties / action_cursor / descriptionPrevious value: -"work_queue action_queue cursor; restart at page 1 after a mutation."New value: +"work_queue action_queue cursor; restart after mutations." - added
Input schema / properties / agent_nameAdded value: +{ + "description": "solutions: rows HELD by this agent.", + "maxLength": 120, + "type": "string" +} - changed
Input schema / properties / claim_id / descriptionPrevious value: -"Claim UUID (from a name: atisbo_lookup mode=resolve)"New value: +"Claim UUID (atisbo_lookup mode=resolve)" - changed
Input schema / properties / command_id / descriptionPrevious value: -"receipts: probe ONE write — the exact key on a listed receipt; omit for your 25 latest."New value: +"receipts: probe one write by a listed receipt key; omit = latest 25." - changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor from a previous response."New value: +"Cursor from a prior response." - changed
Input schema / properties / depth / descriptionPrevious value: -"summary (alias: brief) = compact fields; work = full context (default)."New value: +"summary=compact; work=full (default); evidence (claims)=evidence+decisions, no score internals." - changed
Input schema / properties / depth / enumPrevious value: -[ - "summary", - "work" -]New value: +[ + "summary", + "work", + "evidence" +] - changed
Input schema / properties / entity / descriptionPrevious value: -"get: which entity kind the id field carries. Omit; the id field names it."New value: +"get: which kind the id field names." - changed
Input schema / properties / evidence_limit / descriptionPrevious value: -"get entity=claim: evidence rows on page one (1–25); cursor reaches the rest."New value: +"get claim: evidence page one (1–25); cursor for the rest." - changed
Input schema / properties / mode / descriptionPrevious value: -"Named by its enum value; notes per mode in meta.guidance."New value: +"Named by its enum value (notes: meta.guidance)." - changed
Input schema / properties / ref / descriptionPrevious value: -"open: a handle ref (claim:UUID, snippet://UUID)."New value: +"open: handle ref (claim:UUID, snippet://UUID)." - changed
Input schema / properties / review_kind / descriptionPrevious value: -"unreviewed only (see atisbo_decide mode=mark_reviewed)."New value: +"unreviewed only — see atisbo_decide mark_reviewed." - changed
Input schema / properties / scope_id / descriptionPrevious value: -"Scope UUID unless scope/scope_type is company/workspace."New value: +"Scope UUID (omit for company/workspace)." - changed
Input schema / properties / scope_type / descriptionPrevious value: -"Alias of scope (either name works); workspace is treated as company."New value: +"Alias of scope; workspace=company." - changed
Input schema / properties / sort_by / descriptionPrevious value: -"Solution order (priority = evidence-weighted × boost)."New value: +"Solution order (evidence-weighted × boost)." - changed
Input schema / properties / state / descriptionPrevious value: -"work tokens (todo=DESIGNING, active=agent-consumable) or post-launch kinds."New value: +"work tokens (todo=DESIGNING); post-launch kinds." - added
Input schema / properties / triage_outcomeAdded value: +{ + "description": "claims: triage verdict; review=pending; processing=in-flight.", + "enum": [ + "processing", + "review", + "signal", + "noise" + ], + "type": "string" +} - changed
Input schema / properties / view / descriptionPrevious value: -"work_queue: one whole bucket by whose move it is."New value: +"work_queue: ONE bucket, complete."
- Changed
atisbo_map4 fields changed- changed
Input schema / properties / binding_id / descriptionPrevious value: -"metric_update: binding to update (atisbo_lookup mode=get, metrics[].id)."New value: +"metric_update: binding id (atisbo_lookup mode=get, metrics[].id)." - changed
Input schema / properties / claim_id / descriptionPrevious value: -"Claim UUID (from a name: atisbo_lookup mode=resolve)"New value: +"Claim UUID (atisbo_lookup mode=resolve)" - changed
Input schema / properties / historical_data / descriptionPrevious value: -"metric_update: full series REPLACEMENT (omit to append current_value)."New value: +"metric_update: full series REPLACEMENT (omit = append now)." - changed
Input schema / properties / updated_at / descriptionPrevious value: -"metric_update: binding updated_at from your last read (stale edits fail)."New value: +"metric_update: updated_at from your last read (stale edits fail)."
- Changed
atisbo_orient3 fields changed- changed
Input schema / properties / depth / descriptionPrevious value: -"summary (alias: brief) = compact fields; work = full context (default)."New value: +"summary=compact; work=full (default)." - changed
Input schema / properties / mode / descriptionPrevious value: -"snapshot (alias: workspace) uses task; whats_new uses since_checkpoint; strategy/integrations need no IDs."New value: +"snapshot (alias: workspace)=task; whats_new=since_checkpoint; strategy/integrations none." - changed
Input schema / properties / task / descriptionPrevious value: -"triage = untriaged inbox; planning = confirmed opportunities by priority; operations = signals & integrations; executive = KPIs & strategy."New value: +"triage=untriaged inbox; planning=confirmed opportunities by priority; operations=signals & integrations; executive=KPIs & strategy."
- Changed
atisbo_support4 fields changed- changed
Input schema / properties / area / descriptionPrevious value: -"Narrows which checks run. Omit when unsure — the full set costs the same round-trip."New value: +"Narrows the checks. Omit when unsure — the full set costs the same." - changed
Input schema / properties / observed_error / descriptionPrevious value: -"The failing error string VERBATIM — diagnostics cannot see the failed call, so this is often the only evidence."New value: +"The failing error VERBATIM — diagnostics cannot see the failed call; usually the only evidence." - changed
Input schema / properties / problem / descriptionPrevious value: -"What went wrong, in your words. Do NOT paste customer feedback, document bodies or credentials — this string IS filed if a report is created."New value: +"What went wrong, in your words. No customer feedback, docs or credentials — the string IS filed in reports." - changed
Input schema / properties / share_report / descriptionPrevious value: -"File a verdict-only report when the problem is not caller-side; false = diagnose only."New value: +"File a verdict-only report when the fault is not caller-side; false = diagnose."
3 tool updates
- Changed
atisbo_capture10 fields changed- changed
Input schema / properties / change_summary / descriptionPrevious value: -"patch_artefact: REQUIRED top-level change_summary (or note) — one sentence of what changed."New value: +"patch_artefact: REQUIRED — change_summary (or note), one sentence of what changed." - changed
Input schema / properties / claim_id / descriptionPrevious value: -"knowledge: alias for scope_id (scope_type=claim)."New value: +"knowledge: alias for scope_id." - changed
Input schema / properties / corrects_prior_evidence / descriptionPrevious value: -"signal: TRUE to CORRECT prior evidence, not repeat it (skips dedup; when/why in meta.guidance)."New value: +"signal: CORRECTS prior evidence, not a repeat (skips dedup; when/why in meta.guidance)." - changed
Input schema / properties / dirty_event_id / descriptionPrevious value: -"Dirty event resolved on success"New value: +"Dirty event resolved" - changed
Input schema / properties / modality / descriptionPrevious value: -"Q=Quote, O=Observation, M=Metric; inferred if omitted."New value: +"Q=Quote, O=Observation, M=Metric; else inferred." - changed
Input schema / properties / node_id / descriptionPrevious value: -"knowledge: alias for scope_id (scope_type=node)."New value: +"knowledge: alias for scope_id." - changed
Input schema / properties / note / descriptionPrevious value: -"Why it matters (signal)."New value: +"Why it matters." - changed
Input schema / properties / scope_id / descriptionPrevious value: -"Target scope UUID; required for node/claim/solution/map."New value: +"Target scope UUID; required for node/claim/map. On scope_type=solution (mode=knowledge), omit it or pass \"auto\": Atisbo routes the detail to an open Solution." - changed
Input schema / properties / scope_type / descriptionPrevious value: -"Scope kind; company = active workspace."New value: +"Scope kind; company = workspace." - changed
Input schema / properties / solution_id / descriptionPrevious value: -"knowledge: alias for scope_id (scope_type=solution)."New value: +"knowledge: alias for scope_id."
- Changed
atisbo_decide18 fields changed- changed
Input schema / properties / agent_name / descriptionPrevious value: -"Signs comments/assignments/decisions. Default \"Agent\"."New value: +"Signs comments/assignments/decisions." - changed
Input schema / properties / comment / descriptionPrevious value: -"update_solution: thread report as the agent."New value: +"update_solution / deliver: thread report as the agent." - added
Input schema / properties / coverage_updatesAdded value: +{ + "description": "deliver: buckets snippets/ideas/claims." +} - changed
Input schema / properties / covered_ideas / descriptionPrevious value: -"check_coverage: idea ids from the coverage map."New value: +"check_coverage: idea ids in the coverage map." - changed
Input schema / properties / criteria_left_out_reason / descriptionPrevious value: -"Why each criterion is out; required with criteria_left_out."New value: +"Why each is out; required with criteria_left_out." - changed
Input schema / properties / decision_type / descriptionPrevious value: -"log_decision: e.g. product_decision, note (full list in the error)."New value: +"log_decision: e.g. product_decision, note; full list in the error." - changed
Input schema / properties / discard_reason / descriptionPrevious value: -"update_solution: divergence loser (ADR-224); needs CANCELED."New value: +"update_solution: divergence loser (ADR-224); CANCELED required." - changed
Input schema / properties / effort / descriptionPrevious value: -"Size estimate, person-weeks. Sizing only, never affects order."New value: +"Size estimate, person-weeks; sizing only, never affects order." - changed
Input schema / properties / matrix / descriptionPrevious value: -"validate_delivery: one entry per success criterion."New value: +"validate_delivery / deliver: one entry per criterion." - changed
Input schema / properties / matrix / items / properties / criterion / descriptionPrevious value: -"Success criterion, in the living doc's words where possible."New value: +"Success criterion, in the living doc's words." - changed
Input schema / properties / matrix / items / properties / evidence / descriptionPrevious value: -"What you did and saw — required in spirit for *_verified."New value: +"What you did and saw; required in spirit for *_verified." - changed
Input schema / properties / matrix / items / properties / note / descriptionPrevious value: -"Required for an incomplete to be accepted: alternative method, or blocker."New value: +"Required for incomplete: alternative method, or blocker." - changed
Input schema / properties / mission / descriptionPrevious value: -"update_strategy: informational only. ≤2000."New value: +"update_strategy: informational only." - changed
Input schema / properties / mode / enumPrevious value: -[ - "triage", - "rename_claim", - "delete_claim", - "combine_claims", - "reassign_snippet", - "create_claim_from_snippet", - "split_snippet", - "create_solution", - "create_living_doc", - "update_solution", - "dispatch_solution", - "record_outcome", - "delete_solution", - "apply_solution_spec", - "update_strategy", - "log_decision", - "update_artefact_schedule", - "create_solution_doc", - "deal_breaker", - "declare_pm_exception", - "delete_knowledge", - "set_knowledge_category", - "set_claim_review_status", - "set_snippet_status", - "check_coverage", - "mark_reviewed", - "validate_delivery" -]New value: +[ + "triage", + "rename_claim", + "delete_claim", + "combine_claims", + "reassign_snippet", + "create_claim_from_snippet", + "split_snippet", + "create_solution", + "create_living_doc", + "update_solution", + "dispatch_solution", + "record_outcome", + "delete_solution", + "apply_solution_spec", + "update_strategy", + "log_decision", + "update_artefact_schedule", + "create_solution_doc", + "deal_breaker", + "declare_pm_exception", + "delete_knowledge", + "set_knowledge_category", + "set_claim_review_status", + "set_snippet_status", + "check_coverage", + "mark_reviewed", + "validate_delivery", + "deliver" +] - changed
Input schema / properties / note / descriptionPrevious value: -"record_outcome narrative max 5000; triage/log_decision rationale max 2000."New value: +"record_outcome narrative 5000; triage/log_decision rationale 2000." - changed
Input schema / properties / pm_exception_reason / descriptionPrevious value: -"update_solution / declare_pm_exception: a PERSON's decision; ops go in operational_block_reason."New value: +"update_solution / declare_pm_exception: a PERSON's decision; ops in operational_block_reason." - changed
Input schema / properties / replace_confirmed / descriptionPrevious value: -"validate_delivery: true ONLY to confirm deliberately replacing a longer recorded matrix with a shorter one."New value: +"validate_delivery / deliver: true confirms replacing a longer recorded matrix with a shorter one." - changed
Input schema / properties / roadmap / descriptionPrevious value: -"update_strategy: informational only. ≤5000."New value: +"update_strategy: informational only."
- Changed
atisbo_lookup1 field changed- changed
Input schema / properties / entity / descriptionPrevious value: -"get: which entity kind the id field carries. Omit — the id field names the entity."New value: +"get: which entity kind the id field carries. Omit; the id field names it."
3 tool updates
- Changed
atisbo_decide6 fields changed- changed
Input schema / properties / claim_id / descriptionPrevious value: -"Claim UUID — resolve names with atisbo_lookup mode=resolve first"New value: +"Claim UUID (from a name: atisbo_lookup mode=resolve)" - changed
Input schema / properties / force_reassign / descriptionPrevious value: -"dispatch_solution: audited takeover of an in-progress Solution; omit refuses contested dispatch."New value: +"dispatch_solution: audited takeover of a Solution in progress." - changed
Input schema / properties / pm_exception_reason / descriptionPrevious value: -"update_solution / declare_pm_exception: needs a PERSON decision; not ops (use operational_block_reason)."New value: +"update_solution / declare_pm_exception: a PERSON's decision; ops go in operational_block_reason." - added
Input schema / properties / pm_instructionAdded value: +{ + "description": "update_strategy: the PM's request, quoted.", + "maxLength": 1000, + "type": "string" +} - changed
Input schema / properties / solution_id / descriptionPrevious value: -"Solution UUID — resolve names with atisbo_lookup mode=resolve first"New value: +"Solution UUID (from a name or SEN-n: atisbo_lookup mode=resolve)" - changed
Input schema / properties / target_claim_id / descriptionPrevious value: -"Claim UUID — resolve names with atisbo_lookup mode=resolve first"New value: +"Claim UUID (from a name: atisbo_lookup mode=resolve)"
- Changed
atisbo_lookup2 fields changed- changed
Input schema / properties / claim_id / descriptionPrevious value: -"Claim UUID — resolve names with atisbo_lookup mode=resolve first"New value: +"Claim UUID (from a name: atisbo_lookup mode=resolve)" - changed
Input schema / properties / solution_id / descriptionPrevious value: -"Solution UUID — resolve names with atisbo_lookup mode=resolve first"New value: +"Solution UUID (from a name or SEN-n: atisbo_lookup mode=resolve)"
- Changed
atisbo_map1 field changed- changed
Input schema / properties / claim_id / descriptionPrevious value: -"Claim UUID — resolve names with atisbo_lookup mode=resolve first"New value: +"Claim UUID (from a name: atisbo_lookup mode=resolve)"
1 tool update
- Changed
atisbo_support1 field changed- changed
Output schema / properties / data / requiredPrevious value: -[ - "outcome", - "headline", - "explanation", - "findings", - "next_steps", - "known_issue", - "report_id", - "reported" -]New value: +[ + "outcome", + "headline", + "explanation", + "findings", + "next_steps", + "reported" +]
1 tool update
- Changed
atisbo_capture4 fields changed- changed
Input schema / properties / capture_mode / descriptionPrevious value: -"Knowledge routing; default signals_only."New value: +"Knowledge routing." - added
Input schema / properties / change_summary / descriptionAdded value: +"patch_artefact: REQUIRED top-level change_summary (or note) — one sentence of what changed." - changed
Input schema / properties / client_request_id / descriptionPrevious value: -"signal: retry key; resend the SAME key to retry."New value: +"signal: retry key." - changed
Input schema / properties / corrects_prior_evidence / descriptionPrevious value: -"signal: CORRECTS prior evidence, not repeats it. Records WHICH evidence it corrects (echoed as corrects) and attaches the snippet to that claim."New value: +"signal: TRUE to CORRECT prior evidence, not repeat it (skips dedup; when/why in meta.guidance)."
2 tool updates
- Changed
atisbo_capture1 field changed- changed
Input schema / properties / items / descriptionPrevious value: -"signal_batch, max 100."New value: +"Batch; max 100 items."
- Changed
atisbo_lookup2 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Max results; delegates clamp per page. Page with next_cursor."New value: +"Max results (1–200); page with next_cursor." - added
Input schema / properties / limit / maximumAdded value: +200
2 tool updates
- Changed
atisbo_analyze5 fields changed- changed
Output schema / properties / data / properties / artifact / properties / artifact_data / properties / resolved_query / requiredPrevious value: -[ - "subject", - "domain", - "time_range", - "group_by", - "metrics", - "analysis", - "filters", - "resolved_nodes" -]New value: +[ + "subject", + "time_range", + "group_by", + "metrics", + "analysis", + "filters", + "resolved_nodes" +] - changed
Output schema / properties / data / properties / resolved_query / requiredPrevious value: -[ - "subject", - "domain", - "time_range", - "group_by", - "metrics", - "analysis", - "filters", - "resolved_nodes" -]New value: +[ + "subject", + "time_range", + "group_by", + "metrics", + "analysis", + "filters", + "resolved_nodes" +] - changed
Output schema / properties / data / properties / stream / requiredPrevious value: -[ - "checkpoint", - "has_more", - "next_cursor" -]New value: +[ + "checkpoint", + "has_more" +] - changed
Output schema / properties / data / requiredPrevious value: -[ - "resolved_query", - "summary", - "dataset", - "sources", - "warnings", - "assumptions", - "artifact" -]New value: +[ + "resolved_query", + "summary", + "dataset", + "sources", + "warnings", + "assumptions" +] - changed
Output schema / properties / meta / requiredPrevious value: -[ - "contract_version", - "tenant_plan", - "workspace_id", - "workspace_name", - "persona", - "scoring_model", - "gates_applied", - "timestamp" -]New value: +[ + "tenant_plan", + "workspace_id", + "workspace_name", + "timestamp" +]
- Changed
atisbo_support1 field changed- changed
Output schema / properties / meta / requiredPrevious value: -[ - "contract_version", - "tenant_plan", - "workspace_id", - "workspace_name", - "persona", - "scoring_model", - "gates_applied", - "timestamp" -]New value: +[ + "tenant_plan", + "workspace_id", + "workspace_name", + "timestamp" +]
1 tool update
- Changed
atisbo_map6 fields changed- changed
Input schema / properties / direction / descriptionPrevious value: -"regroup: broader merges similar claims; specific splits them."New value: +"regroup: broader merges; specific splits." - changed
Input schema / properties / note / descriptionPrevious value: -"link_claims: why these claims sit under this driver; stored on every link."New value: +"link_claims: rationale stored on every link." - changed
Input schema / properties / preview / descriptionPrevious value: -"regroup: read-only preview. ALWAYS preview before executing."New value: +"regroup: read-only preview — ALWAYS run it first." - changed
Input schema / properties / regroup_level / descriptionPrevious value: -"regroup direction=broader: merge aggressiveness."New value: +"regroup broader: merge aggressiveness." - changed
Input schema / properties / target_threshold / descriptionPrevious value: -"regroup direction=specific: split similarity threshold."New value: +"regroup direction=specific: split threshold." - added
Input schema / properties / workspace_wideAdded value: +{ + "description": "regroup: explicit YES to run WORKSPACE-WIDE (refused without it).", + "type": "boolean" +}
3 tool updates
- Changed
atisbo_connect1 field changed- added
Output schema / properties / resultAdded value: +{}
- Changed
atisbo_decide1 field changed- removed
Output schema / requiredRemoved value: -[ - "result" -]
- Changed
atisbo_map1 field changed- removed
Output schema / requiredRemoved value: -[ - "result" -]
6 tool updates
- Changed
atisbo_capture1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": {} + }, + "required": [ + "result" + ], + "type": "object" +}
- Changed
atisbo_connect1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": {}, + "type": "object" +}
- Changed
atisbo_decide1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": {} + }, + "required": [ + "result" + ], + "type": "object" +}
- Changed
atisbo_lookup1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": {} + }, + "required": [ + "result" + ], + "type": "object" +}
- Changed
atisbo_map1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": {} + }, + "required": [ + "result" + ], + "type": "object" +}
- Changed
atisbo_orient1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": {} + }, + "required": [ + "result" + ], + "type": "object" +}
2 tool updates
- Changed
atisbo_capture1 field changed- removed
Input schema / properties / change_summary / descriptionRemoved value: -"Artefact change summary."
- Changed
atisbo_decide3 fields changed- changed
Input schema / properties / category / descriptionPrevious value: -"set_knowledge_category: free-form label; pass null to clear."New value: +"label to set; null clears." - changed
Input schema / properties / id / descriptionPrevious value: -"delete_knowledge / set_knowledge_category: doc id."New value: +"delete_knowledge/set_knowledge_category doc id." - added
Input schema / properties / spec / properties / successCriteria / descriptionAdded value: +"What must be TRUE at launch. Template: implementation_context."
1 tool update
- Changed
atisbo_capture4 fields changed- added
Input schema / properties / bodyAdded value: +{} - changed
Input schema / properties / content / descriptionPrevious value: -"Knowledge/artefact content."New value: +"Knowledge content." - added
Input schema / properties / messageAdded value: +{} - changed
Input schema / properties / title / descriptionPrevious value: -"Knowledge/evidence title."New value: +"Knowledge title."
1 tool update
- Changed
atisbo_decide1 field changed- added
Input schema / properties / replace_confirmedAdded value: +{ + "description": "validate_delivery: true ONLY to confirm deliberately replacing a longer recorded matrix with a shorter one.", + "type": "boolean" +}
1 tool update
- Changed
atisbo_capture2 fields changed- changed
Input schema / properties / corrects_prior_evidence / descriptionPrevious value: -"signal: CORRECTS prior evidence, not repeats it."New value: +"signal: CORRECTS prior evidence, not repeats it. Records WHICH evidence it corrects (echoed as corrects) and attaches the snippet to that claim." - added
Input schema / properties / items / items / properties / corrects_prior_evidenceAdded value: +{ + "type": "boolean" +}
1 tool update
- Changed
atisbo_lookup1 field changed- added
Input schema / properties / viewAdded value: +{ + "description": "work_queue: one whole bucket by whose move it is.", + "enum": [ + "executable", + "propose", + "needs_pm" + ], + "type": "string" +}
Related MCP Connectors
Agile project management over MCP: boards, epics, roadmap, retros, whiteboards, wiki, metrics
Your product team's shared strategic memory — an MCP server your AI tools reason over.
Work management where AI agents are first-class members: tasks, projects, memory over hosted MCP
Self-hosted AI workspace: semantic RAG document search, long-term memory, and AI chat via MCP.
Related MCP Servers
- AlicenseAqualityBmaintenanceLocal-first MCP tools for AI-assisted work receipts, workspace maps, routing ledgers, measured verdicts, and shared state verification across the five Project Telos flagships.5046 npm4Functional Source , Version 1.1, ALv2 Future
- AlicenseNot gradedqualityDmaintenanceAI-native project management with persistent memory for coding agents. 17 MCP tools for features, stories, sprints, architecture decisions, knowledge base, and session tracking.3MIT
- AlicenseNot gradedqualityBmaintenanceTurns a one-person, multi-project workspace into state an agent can reason over, exposing live git status, Kanban boards, tasks, standups, and production health as queryable tools via MCP.MIT
- AlicenseNot gradedqualityNot gradedmaintenanceSelf-hosted AI workspace exposing semantic document search (RAG via Qdrant and Apache Tika), long-term user memories, and multi-provider AI chat as MCP tools and resources.201Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.