# Atisbo (remote · app.atisbo.dev)

MCP tools over one Atisbo workspace: Signals, Opportunities, Backlog, Decisions, Living Documents.

- Trust score: 88/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- remote · `app.atisbo.dev`: 88/100 (this document), [markdown](https://verifymcp.io/servers/brian8a1-atisbo/api-mcp.md), [page](https://verifymcp.io/servers/brian8a1-atisbo/api-mcp)

## Channel facts

- Endpoint: `https://app.atisbo.dev/api/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Endpoint Security**: 91/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 65/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4446 tokens (~494/item across 9 items; 8 tools + 1 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 86/100
  - Stability check failed: schema churn in the 28 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 93/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 75% of tool parameters carry a description.
  - Structured output schemas are declared (25% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 8 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the Atisbo MCP server?

Atisbo is a hosted endpoint at https://app.atisbo.dev/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http brian8a1-atisbo 'https://app.atisbo.dev/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "brian8a1-atisbo": {
      "url": "https://app.atisbo.dev/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "brian8a1-atisbo": {
      "type": "http",
      "url": "https://app.atisbo.dev/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.brian8a1-atisbo]
url = "https://app.atisbo.dev/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "brian8a1-atisbo": {
      "type": "remote",
      "url": "https://app.atisbo.dev/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add brian8a1-atisbo --url 'https://app.atisbo.dev/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  brian8a1-atisbo:
    url: "https://app.atisbo.dev/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "brian8a1-atisbo": {
      "Transport": "http",
      "Url": "https://app.atisbo.dev/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add brian8a1-atisbo -t streamable-http -u 'https://app.atisbo.dev/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "brian8a1-atisbo": {
      "type": "http",
      "url": "https://app.atisbo.dev/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 88, +1)

- [cosmetic] “atisbo_lookup” added an optional parameter “evidence_limit”

### 2026-09-19 (score 87, 0)

- [cosmetic] “atisbo_capture” reworded the description of “category”
- [cosmetic] “atisbo_connect” reworded the description of “source_category”
- [cosmetic] “atisbo_decide” reworded the description of “category”
- [cosmetic] “atisbo_decide” reworded the description of “discard_reason”
- [cosmetic] “atisbo_decide” reworded the description of “effort”
- [cosmetic] “atisbo_decide” reworded the description of “rice_effort”
- [cosmetic] “atisbo_lookup” reworded the description of “category”
- [cosmetic] “atisbo_map” reworded the description of “current_value”

### 2026-09-18 (score 87, +1)

- [cosmetic] “atisbo_capture” added an optional parameter “category”
- [cosmetic] “atisbo_decide” added an optional parameter “category”
- [cosmetic] “atisbo_lookup” added an optional parameter “category”
- [cosmetic] “atisbo_decide” reworded the description of “id”

### 2026-09-17 (score 86, 0)

- [security] Tool “atisbo_connect” rewrote its description, which is the text the model reads
- [security] Tool “atisbo_map” rewrote its description, which is the text the model reads
- [security] Tool “atisbo_orient” rewrote its description, which is the text the model reads
- [functional regression] Tool coverage: 87% → 75%
- [cosmetic] “atisbo_decide” reworded the description of “agent_name”
- [cosmetic] “atisbo_decide” reworded the description of “assign_node_id”
- [cosmetic] “atisbo_decide” reworded the description of “assign_to_agent”
- [cosmetic] “atisbo_decide” reworded the description of “attach_claim_ids”
- [cosmetic] “atisbo_decide” reworded the description of “brief”
- [cosmetic] “atisbo_decide” reworded the description of “chosen_solution_id”
- [cosmetic] “atisbo_decide” reworded the description of “claimId”
- [cosmetic] “atisbo_decide” reworded the description of “clear_discard”
- [cosmetic] “atisbo_decide” reworded the description of “clear_operational_block”
- [cosmetic] “atisbo_decide” reworded the description of “clear_pm_exception”
- [cosmetic] “atisbo_decide” reworded the description of “comment”
- [cosmetic] “atisbo_decide” reworded the description of “contradictions_found”
- [cosmetic] “atisbo_decide” reworded the description of “criteria_left_out”
- [cosmetic] “atisbo_decide” reworded the description of “criteria_left_out_reason”
- [cosmetic] “atisbo_decide” reworded the description of “decision”
- [cosmetic] “atisbo_decide” reworded the description of “decision_type”
- [cosmetic] “atisbo_decide” reworded the description of “description”
- [cosmetic] “atisbo_decide” reworded the description of “design_context”
- [cosmetic] “atisbo_decide” reworded the description of “detach_claim_ids”
- [cosmetic] “atisbo_decide” reworded the description of “discard_reason”
- [cosmetic] “atisbo_decide” reworded the description of “document_id”
- [cosmetic] “atisbo_decide” reworded the description of “effort_estimate”
- [cosmetic] “atisbo_decide” reworded the description of “evidence_refs”
- [cosmetic] “atisbo_decide” reworded the description of “force”
- [cosmetic] “atisbo_decide” reworded the description of “force_reassign”
- [cosmetic] “atisbo_decide” reworded the description of “id”
- [cosmetic] “atisbo_decide” reworded the description of “instruction”
- [cosmetic] “atisbo_decide” reworded the description of “is_deal_breaker”
- [cosmetic] “atisbo_decide” reworded the description of “lifecycle”
- [cosmetic] “atisbo_decide” reworded the description of “matrix”
- [cosmetic] “atisbo_decide” reworded the description of “metric_current”
- [cosmetic] “atisbo_decide” reworded the description of “mission”
- [cosmetic] “atisbo_decide” reworded the description of “node_id”
- [cosmetic] “atisbo_decide” reworded the description of “note”
- [cosmetic] “atisbo_decide” reworded the description of “observed_at”
- [cosmetic] “atisbo_decide” reworded the description of “operational_block_reason”
- [cosmetic] “atisbo_decide” reworded the description of “outcome”
- [cosmetic] “atisbo_decide” reworded the description of “outcome_classification”
- [cosmetic] “atisbo_decide” reworded the description of “outcome_confidence”
- [cosmetic] “atisbo_decide” reworded the description of “outcome_notes”
- [cosmetic] “atisbo_decide” reworded the description of “pm_exception_reason”
- [cosmetic] “atisbo_decide” reworded the description of “pr_url”
- [cosmetic] “atisbo_decide” reworded the description of “priority_boost”
- [cosmetic] “atisbo_decide” reworded the description of “refresh_schedule”
- [cosmetic] “atisbo_decide” reworded the description of “review_kind”
- [cosmetic] “atisbo_decide” reworded the description of “roadmap”
- [cosmetic] “atisbo_decide” reworded the description of “snippet_id”
- [cosmetic] “atisbo_decide” reworded the description of “snooze_clear”
- [cosmetic] “atisbo_decide” reworded the description of “snooze_days”
- [cosmetic] “atisbo_decide” reworded the description of “spec”
- [cosmetic] “atisbo_decide” reworded the description of “status”
- [cosmetic] “atisbo_decide” reworded the description of “strategy”
- [cosmetic] “atisbo_decide” reworded the description of “target_claim_id”
- [cosmetic] “atisbo_decide” reworded the description of “target_id”
- [cosmetic] “atisbo_decide” reworded the description of “target_type”
- [cosmetic] “atisbo_decide” reworded the description of “title”
- [cosmetic] “atisbo_decide” reworded the description of “unassign”
- [cosmetic] “atisbo_decide” reworded the description of “updated_at”
- [cosmetic] “atisbo_decide” reworded the description of “verification_method”
- [cosmetic] “atisbo_lookup” reworded the description of “state”

### 2026-09-16 (score 86, +1)

No change was recorded against any check on this day. Stability & Change Management went from 66 to 69.

### 2026-09-14 (score 85, +1)

No change was recorded against any check on this day. Stability & Change Management went from 59 to 62.

### 2026-09-12 (score 84, +1)

No change was recorded against any check on this day. Stability & Change Management went from 52 to 56.

### 2026-09-10 (score 83, 0)

- [security] Tool “atisbo_lookup” rewrote its description, which is the text the model reads
- [security] Tool “atisbo_support” rewrote its description, which is the text the model reads
- [cosmetic] “atisbo_lookup” added an optional parameter “judgement_cursor”
- [cosmetic] “atisbo_lookup” reworded the description of “review_kind”

## MCP tools (8)

### `atisbo_orient` (~233 tokens)

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.

Input parameters:

- `cursor` (string): Pagination cursor from a previous response.
- `depth` (string): summary (alias: brief) = compact fields; work = full context (default).
- `limit` (number): Max items. snapshot clamps to 20; whats_new to 50.
- `mode` (string): snapshot (alias: workspace) uses task; whats_new uses since_checkpoint; strategy/integrations need no IDs.
- `since_checkpoint` (string): ISO 8601 checkpoint for delta reads; invalid values are ignored.
- `task` (string): triage = untriaged inbox; planning = confirmed opportunities by priority; operations = signals & integrations; executive = KPIs & strategy.

### `atisbo_lookup` (~617 tokens)

Find or open Atisbo entities. Modes expose snippet text + attachment URLs, queues, outcomes and implementation context.

Input parameters:

- `action_cursor` (string): work_queue action_queue cursor; restart at page 1 after a mutation.
- `anchored` (string): Claim list anchoring filter.
- `category` (string): knowledge: exact category filter. ≤60 chars.
- `claim_id` (string): Claim UUID — resolve names with atisbo_lookup mode=resolve first
- `claim_state` (string): claims/work_queue Claim state; open=untouched.
- `cursor` (string): Pagination cursor from a previous response.
- `debug_score` (boolean): claim mode: PowerScore factor breakdown.
- `depth` (string): summary (alias: brief) = compact fields; work = full context (default).
- `dirty_event_id` (string): doc_patch_context: loads this event's snippets.
- `document_id` (string): Living document UUID.
- `evidence_limit` (number): claim mode: max evidence rows on page one (1–25); the stream cursor reaches the rest.
- `exception_cursor` (string): work_queue: pages pm_exceptions.
- `focus` (string): claims: agent_work (default) | all.
- `include_stale` (boolean): claims: include stale (no snippet in 30d).
- `judgement_cursor` (string): work_queue: pages delegation.needs_judgement.
- `lifecycle` (array): Solution lifecycle filters.
- `limit` (number): Max results; each delegated mode clamps to its own ceiling.
- `map_id` (string): Map UUID.
- `mode` (string, required): Named by its enum value; mode-specific notes return in meta.guidance after the call.
- `node_id` (string): Node UUID.
- `operational_block_cursor` (string): work_queue: pages operational_blocks.
- `query` (string): Search text (resolve/context).
- `ref` (string): open: a handle ref, e.g. claim:UUID or snippet://UUID.
- `refs` (array): open: several refs (max 10).
- `review_kind` (string): unreviewed only (see atisbo_decide mode=mark_reviewed).
- `scope` (string): Scope for context / living_doc list.
- `scope_id` (string): Scope UUID unless scope=company.
- `solution_id` (string): Solution UUID — resolve names with atisbo_lookup mode=resolve first
- `sort_by` (string): Solution list order (priority = evidence-weighted × boost).
- `state` (string): work tokens (todo=DESIGNING, active=agent-consumable) or post-launch kinds — the Backlog UI partition.
- `status` (string): Status filter — see guidance for "archived".
- `target_id` (string): Generic UUID for claim/solution/node/map/doc.
- `type` (string): claims: classification.
- `types` (array): resolve: entity kinds.

### `atisbo_capture` (~412 tokens)

Capture Signals or knowledge; update, patch or add evidence to artefacts.

Input parameters:

- `agent_name` (string): Signs the change.
- `attachments` (array): 1-5 files; 3 MB combined.
- `capture_mode` (string): Knowledge routing; default signals_only.
- `captured_from` (string)
- `category` (string): knowledge: free-form category/folder label, ≤60 chars. Change via atisbo_decide mode=set_knowledge_category; filter via atisbo_lookup mode=knowledge.
- `change_summary` (string): Artefact change summary.
- `classification` (string): Signal classification hint.
- `content` (string): Knowledge or artefact content.
- `corrects_prior_evidence` (boolean): signal: CORRECTS prior evidence, not repeats it.
- `coverage_updates` (object): Snippet/idea/claim coverage updates.
- `dirty_event_id` (string): Dirty event resolved on success
- `document_id` (string): Living document UUID for artefact modes.
- `evidence` (object): Evidence fields; document_id is top-level.
- `expected_content_hash` (string): content_hash from doc_patch_context
- `file_name` (string)
- `items` (array): signal_batch, max 100.
- `knowledge_kind` (string)
- `mime_type` (string)
- `modality` (string): Q=Quote, O=Observation, M=Metric. Pipeline infers if omitted.
- `mode` (string, required): Capture mode. Mode-specific notes return in meta.guidance after the call.
- `note` (string): Why it matters or ingestion context.
- `patch_ops` (array)
- `scope_id` (string): Target scope UUID.
- `scope_type` (string): Scope kind; company is treated as active workspace.
- `source` (string): Signal source. Defaults to manual.
- `text` (string): Signal text.
- `title` (string): Knowledge or evidence title.

### `atisbo_decide` (~1226 tokens)

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).

Input parameters:

- `agent_name` (string): Signs comments/assignments/decisions. Default "Agent".
- `alternatives` (array)
- `assign_node_id` (string): update_solution: taxonomy node.
- `assign_to_agent` (boolean): update_solution: take ownership.
- `attach_claim_ids` (array)
- `brief` (string): dispatch_solution: agent brief.
- `category` (string): set_knowledge_category: free-form label, ≤60 chars; pass null to clear.
- `chosen_solution_id` (string): update_solution: the winning sibling.
- `claimId` (string)
- `claim_id` (string): Claim UUID — resolve names with atisbo_lookup mode=resolve first
- `claim_ids` (array)
- `clear_discard` (boolean)
- `clear_operational_block` (boolean)
- `clear_pm_exception` (boolean)
- `comment` (string): update_solution: thread report as the agent.
- `contradictions_found` (boolean): record_outcome (automated): attest a contradiction sweep.
- `covered_claims` (array): check_coverage: claim ids this work implements. 50 ids ×128 chars.
- `covered_ideas` (array): check_coverage: idea ids from the coverage map. 100 ids ×128 chars.
- `criteria_left_out` (array): update_solution: criteria left OUT (ADR-234); only with LAUNCHED.
- `criteria_left_out_reason` (string): update_solution: why; required with criteria_left_out.
- `decision` (string)
- `decision_type` (string)
- `description` (string): ≤2000 chars.
- `design_context` (string)
- `detach_claim_ids` (array)
- `discard_reason` (string): update_solution: divergence loser (ADR-224); requires CANCELED.
- `document_id` (string)
- `effort` (number): Size estimate in person-weeks (0.5-52). Sizing only — never affects Backlog order.
- `effort_estimate` (number)
- `evidence_refs` (array): record_outcome: durable evidence refs.
- `expected_behavior` (array): check_coverage: observable behavior delivered. 50 strings ×500 chars.
- `force` (boolean): Confirms a source-deleting reassignment; omit = CONFIRMATION_REQUIRED.
- `force_reassign` (boolean): dispatch_solution: take over an in-progress Solution; audited. Omit refuses a contested dispatch.
- `id` (string): delete_knowledge / set_knowledge_category: doc id.
- `instruction` (string)
- `is_deal_breaker` (boolean): true = flag, false = unflag.
- `kpi_after` (string)
- `kpi_before` (string)
- `lifecycle` (string): IDEA, DESIGNING, IN_DEVELOPMENT, or LAUNCHED.
- `main_features` (array)
- `matrix` (array): validate_delivery: one entry per success criterion. ≤20 entries.
- `metric_current` (number): record_outcome (automated): fresh metric reading.
- `mission` (string): update_strategy: informational only. ≤2000.
- `mode` (string, required): Resolve names to UUIDs before mutating; mode-specific notes return in meta.guidance.
- `node_id` (string)
- `note` (string)
- `observed_at` (string)
- `operational_block_category` (string)
- `operational_block_reason` (string): update_solution: operational blocker; not a decision.
- `out_of_scope` (array): check_coverage: ids intentionally NOT addressed. 100 ids ×128 chars.
- `outcome` (string): record_outcome: launch impact.
- `outcome_classification` (string): Alias for outcome.
- `outcome_confidence` (string)
- `outcome_notes` (string): Alias for note.
- `pm_exception_reason` (string): update_solution / declare_pm_exception: needs a PERSON product decision; not ops — see operational_block_reason.
- `pr_url` (string)
- `priority_boost` (number): update_solution: PM multiplier 0.5-5.0 (Backlog lever).
- `product_name` (string)
- `refresh_schedule` (string)
- `review_kind` (string)
- `rice_effort` (number): Alias for effort.
- `risk_notes` (array): check_coverage: acknowledge unresolved contradictions by id. 50 notes ×1000 chars.
- `roadmap` (string): update_strategy: informational only. ≤5000.
- `snippet_id` (string)
- `snooze_clear` (boolean)
- `snooze_days` (number)
- `solutionId` (string): Alias for solution_id
- `solution_id` (string): Solution UUID — resolve names with atisbo_lookup mode=resolve first
- `spec` (object)
- `status` (string): Target classification.
- `strategy` (string): update_strategy: the only functional field.
- `target_claim_id` (string): Claim UUID — resolve names with atisbo_lookup mode=resolve first
- `target_id` (string)
- `target_type` (string)
- `title` (string)
- `unassign` (boolean)
- `updated_at` (string): Optimistic lock; stale edits fail STALE_DATA.
- `verdict` (string): mode=triage: BOTH values close the claim — see guidance.
- `verification_method` (string): record_outcome: how verified.

### `atisbo_map` (~758 tokens)

Map facade: create/apply maps, generate/edit nodes and edges, anchor claims/snippets, bind metrics, manage claim-snipe maps, regroup (mode=regroup: merge/split). 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, what the Board groups by), refusing non-taxonomy maps; mode=link_claims adds membership in a STRUCTURAL map while the claim keeps its category, refusing taxonomy maps.

Input parameters:

- `anchors` (array): Batch claim anchors.
- `assignments` (array)
- `bindingId` (string): Alias for binding_id.
- `binding_id` (string): metric_update: binding to update — from atisbo_lookup mode=node (metrics[].id).
- `branch_options` (array)
- `branches` (array): Branches for apply mode.
- `claim_id` (string): Claim UUID — resolve names with atisbo_lookup mode=resolve first
- `claim_ids` (array): link_claims: claims to place under node_id.
- `context_answers` (object): Grounding answers for AI map generation.
- `currentValue` (number): Alias for current_value.
- `current_value` (number): metric_update: today's value; same-day re-entry replaces, not stacks.
- `description` (string): Map/node/branch description. ≤2000 chars.
- `direction` (string): regroup: broader merges similar claims, specific splits claims apart.
- `edge_id` (string): Edge UUID for delete_edge mode.
- `edge_type` (string)
- `event_name` (string)
- `grouping_mode` (string)
- `historicalData` (array): Alias for historical_data.
- `historical_data` (array): metric_update: full series REPLACEMENT. Omit to append current_value as a same-day point instead.
- `label` (string)
- `level` (number): Node hierarchy depth.
- `map_id` (string): Map UUID.
- `map_type` (string)
- `metric_name` (string)
- `metric_type` (string)
- `mode` (string, required): Mode-specific notes return in meta.guidance after the call.
- `name` (string): Map, node, or metric name depending on mode.
- `new_level` (number): New depth after a move.
- `new_parent_id` (string): Move target parent; null promotes to root.
- `node_id` (string): Node UUID.
- `note` (string): link_claims: why these claims sit under this driver; stored on every link.
- `parent_id` (string): Parent node UUID.
- `preview` (boolean): regroup: read-only preview of the merge/split. ALWAYS preview before executing.
- `provider` (string): Metric provider, e.g. posthog, amplitude, stripe, manual.
- `regroup_level` (string): For mode=regroup, direction=broader: how aggressively to merge.
- `snippet_id` (string)
- `source_map_id` (string)
- `source_node_id` (string)
- `target_node_id` (string)
- `target_threshold` (number): For mode=regroup, direction=specific: split similarity threshold (0.50–0.98).
- `target_value` (number)
- `template` (string)
- `time_range_days` (number)
- `updatedAt` (string): Alias for updated_at.
- `updated_at` (string): metric_update: binding updated_at from your last read; concurrent edits fail STALE_DATA rather than overwrite.

### `atisbo_connect` (~517 tokens)

WHERE Atisbo gets its signals. Modes: list, catalog, create (returns endpoint), configure, pause, resume, sync_now. 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. create returns endpoint + signing secret shown ONCE — relay to the human immediately.

Input parameters:

- `collection_path` (string): composio_create with pull_tool: dotted path to the record array, when not inferable.
- `config` (object): mode=create with provider: catalog required_fields. Stored encrypted, never readable again.
- `connection_id` (string): Connection id from mode=list; required for configure/pause/resume/sync_now.
- `json_paths` (object): create/configure: dotted paths into the POSTed payload's JSON body.
- `kind` (string): mode=create: "email" provisions the ingest address; default webhook.
- `label` (string): create/configure: human name for the source, e.g. "Freshdesk".
- `mode` (string): list/catalog need no ids; others need connection_id or create fields.
- `provider` (string): mode=create: NATIVE provider from catalog native_providers. Pair with config.
- `pull_arguments` (object): composio_create with pull_tool: arguments the action needs.
- `pull_tool` (string): composio_create, DAILY apps: read-only action from composio_actions.
- `query` (string): mode=catalog only: filter by name, category or description.
- `rate_limit` (number): create/configure: max requests per minute accepted. Default 100.
- `recipe_id` (string): mode=create: catalog recipe id — applies its curated mapping.
- `skip_attribution` (boolean): mode=create: true for anonymous public-forum sources with no attributable customer.
- `source_category` (string): mode=create with your own mapping: what the payload carries.
- `sync_every` (string): PULL sources only: cadence. Default daily.
- `toolkit` (string): composio_actions / composio_create: Composio app slug (e.g. "freshdesk", "jira").
- `trigger_slug` (string): composio_create, INSTANT apps: trigger from composio_catalog.

### `atisbo_analyze` (~266 tokens)

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.

Input parameters:

- `analysis` (string): summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.
- `cursor` (string): From stream.next_cursor — pages grouped rows beyond `limit`.
- `domain` (string): Free-text product area, resolved to map nodes.
- `filters` (object): Filters: AND across fields, OR within a field.
- `group_by` (array): Row grouping dimensions (1-2).
- `limit` (number): Max grouped rows (1–50, default 20); over-asks clamp.
- `metrics` (array): Aggregate metrics per group (1-4).
- `mode` (string): Alias for subject.
- `subject` (string): Dataset: claims (opportunities), solutions, or activity (decisions + events).
- `time_range` (object): Preset (7d/30d/90d) or explicit from/to ISO dates. Defaults to 30d.

Output parameters:

- `data` (object)
- `meta` (object)

### `atisbo_support` (~197 tokens)

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.

Input parameters:

- `area` (string): Narrows which checks run. Omit when unsure — the full set costs the same round-trip.
- `observed_error` (string): The failing error string VERBATIM — diagnostics cannot see the failed call, so this is often the only evidence.
- `problem` (string, required): 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` (boolean): File a verdict-only report when the problem is not caller-side; false = diagnose only.

Output parameters:

- `data` (object)
- `meta` (object)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/brian8a1-atisbo/api-mcp#diagnostics

## Score history

- 2026-09-21: 88
- 2026-09-20: 87
- 2026-09-19: 87
- 2026-09-18: 87
- 2026-09-17: 86
- 2026-09-16: 86
- 2026-09-15: 85
- 2026-09-14: 85
- 2026-09-13: 84
- 2026-09-12: 84
- 2026-09-11: 83
- 2026-09-10: 83
- 2026-09-09: 83
- 2026-09-08: 84
- 2026-09-07: 83
- 2026-09-06: 83
- 2026-09-05: 82
- 2026-09-04: 82
- 2026-09-03: 81
- 2026-09-02: 81
- 2026-09-01: 80
- 2026-08-31: 79
- 2026-08-30: 79
- 2026-08-29: 79
- 2026-08-28: 78
- 2026-08-27: 78
- 2026-08-26: 77
- 2026-08-25: 76
- 2026-08-24: 75

## Common questions

### What is the Atisbo MCP server?

Atisbo is an MCP server listed in the public MCP registry as io.github.brian8a1/atisbo. MCP tools over one Atisbo workspace: Signals, Opportunities, Backlog, Decisions, Living Documents. This page covers its hosted endpoint (https://app.atisbo.dev/api/mcp).

### Is the Atisbo MCP server safe to use?

Atisbo scores 88 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Atisbo MCP server expose?

Atisbo exposes 8 tools: atisbo_orient, atisbo_lookup, atisbo_capture, atisbo_decide, atisbo_map, and 3 more. Their descriptions and schemas cost roughly 4,226 tokens of context every time the server is loaded.

### Does the Atisbo MCP server require authentication?

Yes. Atisbo asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Atisbo MCP server still maintained?

Atisbo is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://app.atisbo.dev/api/mcp
- Authorisation metadata: https://app.atisbo.dev/.well-known/oauth-protected-resource/api/mcp
- Website: https://app.atisbo.dev/docs/api/mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/brian8a1-atisbo/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/brian8a1-atisbo/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/brian8a1-atisbo/api-mcp
