Atisbo
Server Details
MCP tools over one Atisbo workspace: Signals, Opportunities, Backlog, Decisions, Living Documents.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 8 tools
The single-purpose facades (connect, map, orient, support) are distinct, but the multi-purpose ones blur together: document editing/artifact patching spans atisbo_lookup (doc_patch_context), atisbo_capture (patch_artefact), and atisbo_decide (living docs), while querying spans analyze, lookup, and orient. Descriptions do give routing hints (e.g. 'use FIRST', 'use atisbo_lookup for backlog'), so an agent can usually pick, but it must read carefully to avoid misselection.
Every tool follows the same atisbo_<verb> pattern with a single clear verb (analyze, capture, connect, decide, lookup, map, orient, support). No style mixing or inconsistent casing across the set.
Eight tools is well within a healthy range, and each facade owns a coherent domain (analytics, capture, connections, decisions, lookup, maps, orientation, diagnostics). No obvious padding or redundancy at the count level.
The surface covers the full lifecycle: ingest (capture/connect), organize (map), analyze, decide, orient, and troubleshoot (support). Read-only on connected systems is an intentional design constraint rather than a gap, though some operations (e.g. explicit delete/cleanup) are only implied inside mode-based facades.
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; for single-entity drill-downs atisbo_lookup mode=claim or atisbo_lookup mode=node is enough.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Alias for subject. | |
| limit | No | Max grouped rows (1–50, default 20); 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 | Dataset: claims (opportunities), solutions, or activity (decisions + events). | |
| analysis | No | summary (prose), table, or chart kind (bar/line/scatter); trend aliases line. | |
| group_by | No | Row grouping dimensions (1-2). | |
| time_range | No | Preset (7d/30d/90d) or explicit from/to ISO dates. Defaults to 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 mark the tool read-only and non-destructive. The description adds useful behavioral context beyond that: it is an aggregate/broad query and produces a ready-to-render chart artifact, which signals output shape and non-mutating behavior. No contradiction with 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?
Two front-loaded sentences: the first conveys the core function and capabilities, the second gives routing guidance. Every sentence earns its place with no filler or duplication of schema details.
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?
The tool has 10 parameters, nested objects, an output schema, and read-only annotations; the description supplies the missing high-level overview and selection logic. It tells the agent when to call analyze versus lookup, while parameter and output details are fully covered by the schemas.
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 references time filters, grouping, metrics, and chart output, but adds no parameter-level meaning beyond the schema. The schema already documents aliases, defaults, constraints, and filter semantics.
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: 'analytical query over claims, solutions, or activity' with time filters, grouping, metrics, and a chart artifact. It also differentiates itself from atisbo_lookup by noting that lookup suffices for single-entity drill-downs.
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 tells the agent to use this tool first for analytical questions spanning entities or time windows, and names atisbo_lookup mode=claim and mode=node as alternatives for single-entity drill-downs. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_captureCDestructiveInspect
Capture Signals or knowledge; update, patch or add evidence to artefacts.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Capture mode. Mode-specific notes return in meta.guidance after the call. | |
| note | No | Why it matters or ingestion context. | |
| text | No | Signal text. | |
| items | No | signal_batch, max 100. | |
| title | No | Knowledge or evidence title. | |
| source | No | Signal source. Defaults to manual. | |
| content | No | Knowledge or artefact content. | |
| evidence | No | Evidence fields; document_id is top-level. | |
| modality | No | Q=Quote, O=Observation, M=Metric. Pipeline infers if omitted. | |
| scope_id | No | Target scope UUID. | |
| file_name | No | ||
| mime_type | No | ||
| patch_ops | No | ||
| agent_name | No | Signs the change. | |
| scope_type | No | Scope kind; company is treated as active workspace. | |
| attachments | No | 1-5 files; 3 MB combined. | |
| document_id | No | Living document UUID for artefact modes. | |
| capture_mode | No | Knowledge routing; default signals_only. | |
| captured_from | No | ||
| change_summary | No | Artefact change summary. | |
| classification | No | Signal classification hint. | |
| dirty_event_id | No | Dirty event resolved on success | |
| knowledge_kind | No | ||
| coverage_updates | No | Snippet/idea/claim coverage updates. | |
| expected_content_hash | No | content_hash from doc_patch_context | |
| corrects_prior_evidence | No | signal: CORRECTS prior evidence, not repeats it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate a destructive write operation (readOnlyHint=false, destructiveHint=true), and the description's 'update, patch or add' is consistent with that. However, the description adds no behavioral detail beyond the annotations—no mention of artefact mutation effects, idempotency keys, dirty_event_id side effects, or mode-specific consequences, which is significant for a destructive tool.
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 compact sentence with no filler, and the primary action is front-loaded. However, it is so terse that it fails to convey mode routing, so conciseness comes at the cost of practical guidance.
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?
This is a high-complexity tool with 26 parameters, six modes, nested objects, and no output schema, yet the description provides only a one-sentence overview. It gives no indication of which parameters apply to which mode, no mode-specific contracts, and no behavioral caveats, leaving the agent severely under-informed for correct invocation.
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 81%, so the schema already documents most parameters in detail, including mode, evidence, and patch_ops. The description itself only restates broad resource categories and provides no extra parameter-level meaning, so it neither helps nor hurts beyond the high-coverage 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 states a clear verb ('Capture') and resource ('Signals or knowledge') and also names additional artefact operations ('update, patch or add evidence to artefacts'). It broadly distinguishes this tool from analysis or support siblings, but it does not explain the mode-driven dispatch, so the scope remains somewhat broad.
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 siblings or how to choose between the six modes in the schema. The description does not mention alternatives, prerequisites, or mode selection criteria, leaving the agent to infer usage entirely from the parameter schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_connectADestructiveInspect
Compact facade for WHERE Atisbo gets its signals — it CONNECTS sources, not just describes them. Modes: list (connections + live status), catalog (ingestible sources; query filters), create (returns the endpoint), configure, pause, resume, sync_now (pull sources only). Call list before any mutation. THE CATALOG IS NOT THE BOUNDARY: almost anything connects — push app (composio_catalog), daily-pull app (composio_actions, ~1,000 apps), raw webhook/email. Never answer "Atisbo cannot ingest that" from an empty search; call catalog and read fallback. Atisbo only READS a connected system, never writes. create returns an endpoint + signing secret shown EXACTLY ONCE — relay both 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 | mode=create with provider: catalog required_fields. Stored encrypted, never readable again. | |
| toolkit | No | composio_actions / composio_create: Composio app slug (e.g. "freshdesk", "jira"). | |
| provider | No | mode=create: NATIVE provider from catalog native_providers. Pair with config. | |
| pull_tool | No | composio_create, DAILY apps: read-only 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 POSTed payload's JSON body. | |
| rate_limit | No | create/configure: max requests per minute 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 from mode=list; required for configure/pause/resume/sync_now. | |
| pull_arguments | No | composio_create with pull_tool: arguments the action needs. | |
| collection_path | No | composio_create with pull_tool: dotted path to the record array, when not inferable. | |
| source_category | No | mode=create with your own mapping: what kind of signal the payload carries. | |
| skip_attribution | No | mode=create: true for anonymous public-forum sources with no attributable customer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations indicating destructiveHint=true, the description goes beyond by disclosing critical behavioral traits: Atisbo only READS a connected system, never writes; create returns an endpoint + signing secret shown EXACTLY ONCE and must be relayed immediately; config is stored encrypted and never readable again. These are exactly the kind of non-obvious behaviors an agent needs to know.
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 and front-loaded with the primary purpose (CONNECTS), and each sentence earns its place: modes summary, list-first rule, boundary expansion, read-only rule, and one-time secret warning. It loses one point because the heavy use of ALL-CAPS and the density of information could be slightly overwhelming, but nothing is redundant.
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 an 18-parameter tool with no output schema and nested objects, the description supplies the missing contexts: when to call list, catalog fallback behavior, read-only guarantee, one-time secret handling, pull-vs-instant distinction, and mode-to-parameter mapping. There is no output schema, so the return-value guidance ('catalog (ingestible sources; query filters)', 'create returns the endpoint') is appropriately brief but sufficient.
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?
Although schema coverage is 100%, the description adds crucial cross-parameter semantics: which parameters apply to which modes, that kwargs must pair with native_providers, that json_paths.raw_text is REQUIRED, and that sync_every applies only to PULL sources. It also explains consequences of parameter choices (e.g., email provisions an ingest address). This goes 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 names a specific verb (CONNECTS) and resource (Atisbo sources/signals), and immediately distinguishes itself from merely describing them. It enumerates concrete modes list, catalog, create, configure, pause, resume, sync_now, composio variants, making the tool's scope unmistakable and differentiating it from siblings like atisbo_analyze or atisbo_capture.
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 when-to-use instructions: 'Call list before any mutation', and warns against answering from an empty search, directing the agent to call catalog and read fallback. It also explains the CAPABILITIES boundary ('almost anything connects') and provides alternatives by mode. This is strong routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_decideBDestructiveInspect
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 (SEN-180).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Entity UUID — delete_knowledge: doc id from atisbo_lookup knowledge. | |
| mode | Yes | Resolve names to UUIDs before mutating; mode-specific notes return in meta.guidance. | |
| note | No | Rationale or audit note. | |
| spec | No | Structured spec for apply_solution_spec. | |
| brief | No | dispatch_solution: context/brief handed to the agent. | |
| force | No | True confirms a reassignment that would soft-delete the emptied source claim; without it the call fails CONFIRMATION_REQUIRED. | |
| title | No | Title; the new title when renaming. | |
| effort | No | Size estimate in person-weeks (0.5-52). Sizing only — it does not affect Backlog order. | |
| matrix | No | validate_delivery: one entry per success criterion (see implementation_context). ≤20 entries. | |
| pr_url | No | GitHub PR URL. | |
| status | No | set_claim/snippet_status: target classification. | |
| claimId | No | Alias for claim_id. | |
| comment | No | update_solution: report posted to the thread as the agent, visible to teammates. | |
| mission | No | update_strategy: informational note only — not scored or used in prompts. | |
| node_id | No | Optional map node to attach a new solution to. | |
| outcome | No | record_outcome: impact of this launch. Does not reopen the Solution. | |
| roadmap | No | update_strategy: informational note only — not scored or used in prompts. | |
| verdict | No | mode=triage: BOTH values close the claim — see guidance. | |
| claim_id | No | Claim UUID — resolve names with atisbo_lookup mode=resolve first | |
| decision | No | Decision value/verdict for log_decision. | |
| strategy | No | update_strategy: the only functional field — drives alignment scoring/prompts. | |
| unassign | No | update_solution: clear the item's owner. | |
| claim_ids | No | ||
| kpi_after | No | ||
| lifecycle | No | Solution stage: IDEA, DESIGNING, IN_DEVELOPMENT, or LAUNCHED. | |
| target_id | No | Generic target UUID for decision logging. | |
| agent_name | No | Signs comments, assignments and logged decisions; without it they credit the key owner. Default "Agent". | |
| kpi_before | No | ||
| risk_notes | No | check_coverage: acknowledge unresolved contradictions by id. 50 notes ×1000 chars. | |
| snippet_id | No | Snippet UUID for reassignment or claim creation. | |
| solutionId | No | Alias for solution_id | |
| updated_at | No | Optimistic lock from your last read; concurrent edits fail with STALE_DATA. | |
| description | No | Solution description. ≤2000 chars. | |
| document_id | No | update_artefact_schedule: living doc UUID. | |
| instruction | No | create_living_doc/create_solution_doc: preferred structure. | |
| observed_at | No | record_outcome: when the evidence was observed. | |
| review_kind | No | mark_reviewed: which review kind to checkpoint. | |
| rice_effort | No | Alias for effort (legacy column name). | |
| snooze_days | No | Pause on Board for N days. | |
| solution_id | No | Solution UUID — resolve names with atisbo_lookup mode=resolve first | |
| target_type | No | Target entity type for log_decision. | |
| alternatives | No | ||
| out_of_scope | No | check_coverage: ids intentionally NOT addressed. 100 ids ×128 chars. | |
| product_name | No | ||
| snooze_clear | No | Wake a snoozed solution now. | |
| clear_discard | No | update_solution: lift the discard mark; lifecycle unchanged. | |
| covered_ideas | No | check_coverage: idea ids from the coverage map. 100 ids ×128 chars. | |
| decision_type | No | Canonical decision type for log_decision. | |
| evidence_refs | No | record_outcome: durable post-launch evidence references. Required downstream. | |
| main_features | No | ||
| outcome_notes | No | record_outcome: alias for `note`. | |
| assign_node_id | No | update_solution: assign to a taxonomy node; surfaces under claims anchored there. | |
| covered_claims | No | check_coverage: claim ids this work implements. 50 ids ×128 chars. | |
| design_context | No | Design reasoning seeding the living document. | |
| discard_reason | No | update_solution: marks this CANCELED solution a discarded divergence loser (ADR-224). Requires lifecycle CANCELED here or earlier. | |
| force_reassign | No | dispatch_solution: take over a Solution another agent holds in progress; recorded on the audit trail. Omitting it refuses a contested dispatch naming the holder. | |
| metric_current | No | record_outcome with an automated verification method: fresh reading of the bound metric, as a number. | |
| priority_boost | No | update_solution: PM multiplier (0.5-5.0, default 1.0); the lever that moves Backlog order. | |
| assign_to_agent | No | update_solution: take ownership as this agent; overrides an existing assignee. | |
| effort_estimate | No | Initial effort estimate in person-weeks. | |
| is_deal_breaker | No | flag_deal_breaker: true = flag claim, false = unflag. | |
| target_claim_id | No | Destination claim for snippet reassignment. | |
| attach_claim_ids | No | update_solution: attach more claims covered. | |
| detach_claim_ids | No | update_solution: remove non-primary claim attachments | |
| refresh_schedule | No | update_artefact_schedule: cadence | |
| criteria_left_out | No | update_solution: criteria this launch leaves OUT (ADR-234). Only with lifecycle=LAUNCHED. | |
| expected_behavior | No | check_coverage: observable behavior delivered. 50 strings ×500 chars. | |
| chosen_solution_id | No | update_solution: the sibling that won, when discard_reason names it. | |
| clear_pm_exception | No | update_solution / declare_pm_exception: lift the PM exception. | |
| outcome_confidence | No | record_outcome: confidence in the classification. | |
| pm_exception_reason | No | update_solution / declare_pm_exception: needs a PERSON decision (ADR-222, SEN-180 for claims); not ops — see operational_block_reason. | |
| verification_method | No | record_outcome: how the external agent verified the observed result. Required downstream. | |
| contradictions_found | No | record_outcome with an automated verification method: attest you swept the covered claims for contradictory evidence. | |
| outcome_classification | No | record_outcome: alias for `outcome`. | |
| clear_operational_block | No | update_solution: lift it. | |
| criteria_left_out_reason | No | update_solution: why each is out. Required with criteria_left_out. | |
| operational_block_reason | No | update_solution: OPERATIONAL blocker; pair with operational_block_category. Not a decision. | |
| operational_block_category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true. The description adds that mutations self-log, that writes need UUIDs, and that declare_pm_exception marks a claim for human decision, which is useful beyond annotations, but it does not describe what gets destroyed, permission needs, or mode-specific side effects.
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 short, front-loaded with the tool’s role, and groups modes into three readable categories. It avoids restating schema details, though the dense acronyms (SEN-180) and terse mode groups make it less than perfectly clear.
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 28-mode, 78-parameter facade with no output schema and only minimal annotations, the description gives a useful overview but does not explain how to choose among modes, handle errors, or interpret meta.guidance. Schema coverage is high, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so the schema already documents nearly all parameters. The description adds little parameter-level meaning beyond reinforcing that writes require UUIDs and one mode-specific rule; 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?
The description names the tool as a 'PM decision facade' and enumerates mode groups (CURATE, EXECUTE, DOCUMENT/GOVERN) plus specific operations like Solutions, Outcomes, living docs. It clearly establishes a broad decision-management purpose, but it does not name a sibling tool or draw an explicit boundary against atisbo_lookup/analyze, so it falls short of a 5.
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 category-level routing (CURATE/EXECUTE/DOCUMENT/GOVERN) and one explicit rule—'log_decision is only for external decisions; mutations log themselves'—but lacks when-not-to-use guidance and never names an alternative sibling. This is implied usage rather than explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_lookupBRead-onlyInspect
Find or open Atisbo entities. Modes expose snippet text + attachment URLs, queues, outcomes and implementation context.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | open: a handle ref, e.g. claim:UUID or snippet://UUID. | |
| mode | Yes | Named by its enum value; mode-specific notes return in meta.guidance after the call. | |
| refs | No | open: several refs (max 10). | |
| type | No | claims: classification. | |
| depth | No | summary (alias: brief) = compact fields; work = full context (default). | |
| focus | No | claims: agent_work (default) | all. | |
| limit | No | Max results; each delegated mode clamps to its own ceiling. | |
| query | No | Search text (resolve/context). | |
| scope | No | Scope for context / living_doc list. | |
| state | No | solutions/work_queue work-state; todo=DESIGNING. | |
| types | No | resolve: entity kinds. | |
| cursor | No | Pagination cursor from a previous response. | |
| map_id | No | Map UUID. | |
| status | No | Status filter — see guidance for "archived". | |
| node_id | No | Node UUID. | |
| sort_by | No | Solution list order (priority = evidence-weighted × boost). | |
| anchored | No | Claim list anchoring filter. | |
| claim_id | No | Claim UUID — resolve names with atisbo_lookup mode=resolve first | |
| scope_id | No | Scope UUID unless scope=company. | |
| lifecycle | No | Solution lifecycle filters. | |
| target_id | No | Generic UUID for claim/solution/node/map/doc. | |
| claim_state | No | claims/work_queue Claim state; open=untouched. | |
| debug_score | No | claim mode: PowerScore factor breakdown. | |
| document_id | No | Living document UUID. | |
| review_kind | No | unreviewed only (see atisbo_decide mode=mark_reviewed). | |
| solution_id | No | Solution UUID — resolve names with atisbo_lookup mode=resolve first | |
| action_cursor | No | work_queue action_queue cursor; restart at page 1 after a mutation. | |
| include_stale | No | claims: include stale (no snippet in 30d). | |
| dirty_event_id | No | doc_patch_context: loads this event's snippets. | |
| exception_cursor | No | work_queue: pages pm_exceptions. | |
| judgement_cursor | No | work_queue: pages delegation.needs_judgement. | |
| operational_block_cursor | No | work_queue: pages operational_blocks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnlyHint=true and destructiveHint=false, so the description is not required to re-establish safety. It adds a little behavioral context by listing what modes expose (snippet text, attachment URLs, queues, outcomes, implementation context), but it does not disclose deeper behaviors like pagination, mode-specific meta.guidance, or per-mode result shapes.
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 short, front-loaded, and free of redundant schema repetition. The second sentence is a bit vague but still earns its place by hinting at the breadth of output categories.
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?
This is a complex, mode-driven tool with 32 parameters and no output schema, yet the description only offers a broad overview. It does not explain how modes relate to required inputs, what typical return shapes look like, or how to resolve entities — making the description inadequate for confident first-time invocation.
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 schema already documents all 32 parameters and their mode associations. The tool description itself adds no parameter-level semantics; therefore the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair ('Find or open Atisbo entities') and gives a high-level sense of what the modes expose. It does not explicitly differentiate it from sibling tools like atisbo_analyze or atisbo_map, so it stops short of a 5.
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 no guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions. The 'lookup' name implies retrieval, but the description never states the boundary against sibling tools or mentions exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_mapADestructiveInspect
Compact facade for map work: create/apply maps, generate/edit nodes and edges, anchor claims/snippets, bind metrics, manage claim-snipe maps, regroup claims (merge/split — mode=regroup). Prefer mode=apply for full MECE categorization. TWO WAYS TO PUT A CLAIM ON A NODE, not interchangeable: mode=anchor sets the TAXONOMY category (claims.auto_node_id — one per claim, what the Board groups by), refusing non-taxonomy maps; mode=link_claims adds membership in a STRUCTURAL map (KPI tree, opportunity tree) while the claim keeps its category, refusing taxonomy maps.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Mode-specific notes return in meta.guidance after the call. | |
| name | No | Map, node, or metric name depending on mode. | |
| note | No | link_claims: why these claims sit under this driver; 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: read-only preview of the merge/split. ALWAYS preview before executing. | |
| branches | No | Branches for apply mode. | |
| claim_id | No | Claim UUID — resolve names with atisbo_lookup mode=resolve first | |
| map_type | No | ||
| provider | No | Metric provider, e.g. posthog, amplitude, stripe, manual. | |
| template | No | ||
| bindingId | No | Alias for binding_id. | |
| claim_ids | No | link_claims: claims to place under node_id. | |
| direction | No | regroup: broader merges similar claims, specific splits claims apart. | |
| edge_type | No | ||
| new_level | No | New depth after a move. | |
| parent_id | No | Parent node UUID. | |
| updatedAt | No | Alias for updated_at. | |
| binding_id | No | metric_update: binding to update — from atisbo_lookup mode=node (metrics[].id). | |
| event_name | No | ||
| snippet_id | No | ||
| updated_at | No | metric_update: binding updated_at from your last read; concurrent edits fail STALE_DATA rather than overwrite. | |
| assignments | No | ||
| description | No | Map/node/branch description. ≤2000 chars. | |
| metric_name | No | ||
| metric_type | No | ||
| currentValue | No | Alias for current_value. | |
| target_value | No | ||
| current_value | No | metric_update: today's value; appended as a same-day point when no historical_data (re-entry replaces it, not stacked). | |
| grouping_mode | No | ||
| new_parent_id | No | Move target parent; null promotes to root. | |
| regroup_level | No | For mode=regroup, direction=broader: how aggressively to merge. | |
| source_map_id | No | ||
| branch_options | No | ||
| historicalData | No | Alias for historical_data. | |
| source_node_id | No | ||
| target_node_id | No | ||
| context_answers | No | Grounding answers for AI map generation. | |
| historical_data | No | metric_update: full series REPLACEMENT. Omit to append current_value as a same-day point instead. | |
| time_range_days | No | ||
| target_threshold | No | For mode=regroup, direction=specific: split similarity threshold (0.50–0.98). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description warns about STALE_DATA concurrency failures, preview-before-executing for regroup, and the distinction between modes that refuse certain maps. It adds behavioral context about the two ways to put claims on nodes and that mode-specific guidance returns in meta.guidance after the call. It could disclose more about the destructive implications of delete/delete_node/delete_edge modes, but the annotation already flags destructiveness so the bar is lower.
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 dense, front-loaded single paragraph that packs mode semantics into the first sentence, then dedicates the second sentence to the crucial anchor-vs-link_claims distinction. It is long but every clause earns its place, especially the mode list that agents need to understand before touching any parameter. Slight length cost, but high information density.
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 45-parameter tool with no output schema, the description does a solid job orienting the agent to the mode-driven dispatch model, the taxonomy-vs-structural distinction, and the important operational caveats like preview and STALE_DATA. It doesn't enumerate every mode's parameters, but the schema covers parameters and meta.guidance is promised for after-call mode-specific notes. A fuller breakdown per mode would be nice, but the description gives enough to start 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?
With 64% schema coverage, the schema already documents many parameters like mode, name, note, etc. The description adds meaning beyond the schema for the critical distinction between anchor and link_claims membership, the 'refusing non-taxonomy maps' / 'refusing taxonomy maps' constraints, and the preview-before-execute guidance for regroup. Most parameters are individually documented in the schema, so the description complements rather than repeats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a compact facade for map work with explicit mode list: create/apply maps, generate/edit nodes and edges, anchor claims, bind metrics, manage claim-snipe maps, regroup claims. It names the specific resource (map) and differentiates between two ways to put a claim on a node (anchor vs link_claims), which distinguishes its purpose from siblings.
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 when-to-use guidance: 'Prefer mode=apply for full MECE categorization' and clearly distinguishes between mode=anchor (taxonomy category) and mode=link_claims (structural map membership), explaining when each is appropriate and that they are not interchangeable. It also warns about refusing non-taxonomy vs taxonomy maps, which helps the agent select the correct mode.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atisbo_orientARead-onlyInspect
Workspace orientation. Modes: snapshot (overview), whats_new (delta), strategy, integrations. Continue the user's existing workflow; never create a parallel backlog. Living docs cite snippet:// refs: open cited Signals with atisbo_lookup mode=open, use claim depth=work for the full corpus, and atisbo_analyze for aggregates. Edit via atisbo_lookup mode=doc_patch_context then atisbo_capture mode=patch_artefact.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | snapshot (alias: workspace) uses task; whats_new uses since_checkpoint; strategy/integrations need no IDs. | |
| task | No | triage = untriaged inbox; planning = confirmed opportunities by priority; operations = signals & integrations; executive = KPIs & strategy. | |
| depth | No | summary (alias: brief) = compact fields; work = full context (default). | |
| limit | No | Max items. snapshot clamps to 20; whats_new to 50. | |
| cursor | No | Pagination cursor from a previous response. | |
| since_checkpoint | No | ISO 8601 checkpoint for delta reads; invalid values are ignored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool readOnly/non-destructive, so the bar is lower. The description adds behavioral context: it is an orientation/snapshot operation that should continue the existing workflow, never create a parallel backlog, and edits are routed through other tools (lookup then capture), implying orient itself is purely informational. No contradiction with 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?
Three sentences front-load the core modes before giving workflow routing, and each sentence carries information. It is dense and slightly jargon-heavy ('claim depth', 'parallel backlog'), but not bloated or redundant.
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 read-only, parameter-rich tool with full schema coverage, the description provides enough operational context, including mode-specific behaviors and how to continue with sibling tools. The absence of any mention of return format is a minor gap since no output schema exists, but the mode semantics and schema largely compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters, including enum meanings and limit clamp behavior, so the baseline is 3. The description's mode list and 'depth=work for the full corpus' hint lightly supplement the schema but mostly restate it, so no higher score is earned.
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 distinct action, 'Workspace orientation,' and enumerates four modes with parenthetical meanings (snapshot overview, whats_new delta, strategy, integrations), so an agent can identify the resource and primary intent. It does not sharply contrast against siblings like atisbo_map or atisbo_lookup, but the sibling-routing sentences imply orient is the top-level orientation entry point.
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 mentions continuing the user's existing workflow and never creating a parallel backlog, and it directs follow-on actions to atisbo_lookup, atisbo_analyze, and atisbo_capture. However, it does not explicitly state when orient should be preferred over siblings or list exclusions, so the guidance is more workflow context than crisp when-to-use/alternatives guidance.
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 which checks run. Omit when unsure — the full set costs the same round-trip. | |
| problem | Yes | What went wrong, in your words. Do NOT paste customer feedback, document bodies or credentials — this string IS filed if a report is created. | |
| share_report | No | File a verdict-only report when the problem is not caller-side; false = diagnose only. | |
| observed_error | No | The failing error string VERBATIM — diagnostics cannot see the failed call, so this is often 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?
The description states that 'share_report files only diagnostics + your text', and the schema confirms the tool can 'File a verdict-only report', which is a write/side-effect behavior. However, annotations declare readOnlyHint=true, meaning the tool is expected not to modify state. This directly contradicts the described behavior, so the score must be 1 and flagged as an annotation contradiction.
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 tight and front-loaded: it names the verb and resource first, gives concrete examples, summarizes the diagnostic pipeline, and closes with sibling routing. Every sentence earns its place, though the dense phrasing around 'gates and key scope' could be clearer.
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 diagnostic tool with an output schema and rich parameter descriptions, this is nearly complete: it covers typical symptoms, what checks run, the playbook return, report filing behavior, and when to use alternatives. It loses a point due to the annotation contradiction and because 'gates and key scope' are named but not clarified.
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 schema already documents all four parameters in detail. The description adds little beyond restating the share_report filing behavior and pointing to alternative tools, which does not materially expand parameter understanding beyond the 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 opens with a specific verb and resource, 'Diagnose Atisbo', and gives concrete symptom examples that make the tool's job unmistakable. It also names the sibling alternatives for backlog work, so an agent can distinguish it from atisbo_lookup and atisbo_analyze.
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 explicitly says when to use the tool ('I connected a source and nothing appeared', 'I sent text and no opportunity formed', 'my data is missing') and tells the agent to use atisbo_lookup or atisbo_analyze for backlog instead. This is clear, actionable routing 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_decide1 field changed- changed
Input schema / properties / matrix / items / properties / status / enumPrevious value: -[ - "preview_verified", - "production_verified", - "not_applicable", - "incomplete" -]New value: +[ + "preview_verified", + "production_verified", + "not_applicable", + "incomplete", + "superseded" +]
1 tool update
- Changed
atisbo_lookup2 fields changed- added
Input schema / properties / judgement_cursorAdded value: +{ + "description": "work_queue: pages delegation.needs_judgement.", + "minLength": 1, + "type": "string" +} - changed
Input schema / properties / review_kind / descriptionPrevious value: -"orphans/claims/solutions: unreviewed only (see atisbo_decide mode=mark_reviewed)."New value: +"unreviewed only (see atisbo_decide mode=mark_reviewed)."
1 tool update
- Changed
atisbo_lookup12 fields changed- changed
Input schema / properties / dirty_event_id / descriptionPrevious value: -"doc_patch_context: loads this dirty event's snippets so the patch can resolve it."New value: +"doc_patch_context: loads this event's snippets." - added
Input schema / properties / focusAdded value: +{ + "description": "claims: agent_work (default) | all.", + "enum": [ + "agent_work", + "all" + ], + "type": "string" +} - changed
Input schema / properties / include_stale / descriptionPrevious value: -"Include stale claims in claims mode."New value: +"claims: include stale (no snippet in 30d)." - changed
Input schema / properties / query / descriptionPrevious value: -"Search text for resolve/context modes."New value: +"Search text (resolve/context)." - changed
Input schema / properties / refs / descriptionPrevious value: -"open: several handle refs in one call (max 10)."New value: +"open: several refs (max 10)." - changed
Input schema / properties / review_kind / descriptionPrevious value: -"orphans/claims/solutions: not-yet-checkpointed entities (atisbo_decide mode=mark_reviewed)."New value: +"orphans/claims/solutions: unreviewed only (see atisbo_decide mode=mark_reviewed)." - changed
Input schema / properties / scope / descriptionPrevious value: -"Scope for context mode or living_doc list mode."New value: +"Scope for context / living_doc list." - changed
Input schema / properties / scope_id / descriptionPrevious value: -"Scope UUID when scope is not company."New value: +"Scope UUID unless scope=company." - changed
Input schema / properties / sort_by / descriptionPrevious value: -"Solution list order; priority = evidence-weighted × PM boost."New value: +"Solution list order (priority = evidence-weighted × boost)." - changed
Input schema / properties / status / descriptionPrevious value: -"Status filter — see guidance for what \"archived\" covers."New value: +"Status filter — see guidance for \"archived\"." - changed
Input schema / properties / target_id / descriptionPrevious value: -"Generic UUID for claim/solution/node/map/doc reads."New value: +"Generic UUID for claim/solution/node/map/doc." - changed
Input schema / properties / types / descriptionPrevious value: -"Entity kinds for resolve mode."New value: +"resolve: entity kinds."
1 tool update
- Changed
atisbo_lookup10 fields changed- changed
Input schema / properties / action_cursor / descriptionPrevious value: -"work_queue: action_queue cursor. Restart from page one after each mutation."New value: +"work_queue action_queue cursor; restart at page 1 after a mutation." - changed
Input schema / properties / claim_state / descriptionPrevious value: -"work_queue: the three Claim states shown in the UI."New value: +"claims/work_queue Claim state; open=untouched." - changed
Input schema / properties / debug_score / descriptionPrevious value: -"For claim mode, include PowerScore factor breakdown."New value: +"claim mode: PowerScore factor breakdown." - changed
Input schema / properties / exception_cursor / descriptionPrevious value: -"work_queue: pages pm_exceptions, from pm_exceptions_next_cursor."New value: +"work_queue: pages pm_exceptions." - changed
Input schema / properties / operational_block_cursor / descriptionPrevious value: -"work_queue: pages operational_blocks, from operational_blocks_next_cursor."New value: +"work_queue: pages operational_blocks." - changed
Input schema / properties / ref / descriptionPrevious value: -"open: a handle ref like claim:UUID, snippet://UUID or document://UUID."New value: +"open: a handle ref, e.g. claim:UUID or snippet://UUID." - changed
Input schema / properties / review_kind / descriptionPrevious value: -"orphans/claims/solutions: entities not yet checkpointed (atisbo_decide mode=mark_reviewed)."New value: +"orphans/claims/solutions: not-yet-checkpointed entities (atisbo_decide mode=mark_reviewed)." - changed
Input schema / properties / sort_by / descriptionPrevious value: -"Solution list order; priority = evidence-weighted priority × PM boost."New value: +"Solution list order; priority = evidence-weighted × PM boost." - changed
Input schema / properties / state / descriptionPrevious value: -"Work-state filter; todo=DESIGNING."New value: +"solutions/work_queue work-state; todo=DESIGNING." - added
Input schema / properties / typeAdded value: +{ + "description": "claims: classification.", + "enum": [ + "problem", + "idea", + "question", + "unclassified" + ], + "type": "string" +}
2 tool updates
- Changed
atisbo_analyze2 fields changed- changed
Output schema / properties / data / properties / artifact / properties / artifact_data / properties / resolved_query / requiredPrevious value: -[ - "domain", - "time_range", - "group_by", - "metrics", - "filters", - "resolved_nodes" -]New value: +[ + "subject", + "domain", + "time_range", + "group_by", + "metrics", + "analysis", + "filters", + "resolved_nodes" +] - changed
Output schema / properties / data / properties / resolved_query / requiredPrevious value: -[ - "domain", - "time_range", - "group_by", - "metrics", - "filters", - "resolved_nodes" -]New value: +[ + "subject", + "domain", + "time_range", + "group_by", + "metrics", + "analysis", + "filters", + "resolved_nodes" +]
- Changed
atisbo_map1 field changed- added
Input schema / requiredAdded value: +[ + "mode" +]
1 tool update
- Changed
atisbo_capture8 fields changed- added
Input schema / properties / attachmentsAdded value: +{ + "description": "1-5 files; 3 MB combined.", + "items": { + "description": "PNG/JPG/WebP/PDF; no extraction.", + "properties": { + "data_base64": { + "description": "Base64, ≤4200000 chars.", + "maxLength": 4200000, + "minLength": 4, + "type": "string" + }, + "file_name": { + "description": "Name, ≤200 chars.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "mime_type": { + "enum": [ + "image/png", + "image/jpeg", + "image/webp", + "application/pdf" + ], + "type": "string" + } + }, + "required": [ + "data_base64", + "file_name", + "mime_type" + ], + "type": "object" + }, + "maxItems": 5, + "minItems": 1, + "type": "array" +} - changed
Input schema / properties / capture_mode / descriptionPrevious value: -"Routing; the signals_only default creates no reusable knowledge unless requested."New value: +"Knowledge routing; default signals_only." - changed
Input schema / properties / change_summary / descriptionPrevious value: -"Public change description for update_artefact/patch_artefact (patch_artefact accepts note as fallback)."New value: +"Artefact change summary." - changed
Input schema / properties / content / descriptionPrevious value: -"Document content — update_artefact fully replaces the doc."New value: +"Knowledge or artefact content." - changed
Input schema / properties / evidence / descriptionPrevious value: -"add_artefact_evidence fields; document_id goes at top level. title aliases label, provider aliases kind."New value: +"Evidence fields; document_id is top-level." - changed
Input schema / properties / items / descriptionPrevious value: -"signal_batch; max 100 items. Each needs text + client_request_id."New value: +"signal_batch, max 100." - changed
Input schema / properties / scope_id / descriptionPrevious value: -"Required for node, claim, solution, and map scopes."New value: +"Target scope UUID." - changed
Input schema / properties / text / descriptionPrevious value: -"Raw feedback/signal text (signal mode)."New value: +"Signal text."
8 tool updates
- First observed
atisbo_analyze - First observed
atisbo_capture - First observed
atisbo_connect - First observed
atisbo_decide - First observed
atisbo_lookup - First observed
atisbo_map - First observed
atisbo_orient - First observed
atisbo_support
Related MCP Connectors
- OctopadOAuthapp.octopad
The back-office workspace for your team's AIs: tasks, knowledge and context shared over MCP.
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
AI research on companies and industries — one MCP tool per research domain.
Related MCP Servers
- FlicenseAqualityBmaintenanceLocal-first MCP tools for AI-assisted work receipts, workspace maps, routing ledgers, measured verdicts, and shared state verification across the five Project Telos flagships.412-
- 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
- AlicenseBqualityCmaintenanceShared workspace your AI agents write to. CMMN case management with 184+ MCP tools: cases, tasks, event-driven CMMN workflows with sentries, persistent memory with semantic search, billing and invoicing. OAuth or token auth; cloud-hosted remote MCP endpoint.10023MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents and humans to collaboratively manage kanban boards and Markdown documentation via MCP tools, with stable item keys, revision-safe editing, and full audit trails.MIT