Is the Brian8a1 Atisbo MCP server down?

mcp-registry/io.github.brian8a1/atisbo · v1.0.0

healthy
Last checked 2026-10-25 09:30 UTC · handshake 97ms

As of 2026-10-25 09:30 UTC, the Brian8a1 Atisbo MCP server is up with a Glimind reliability score of 96/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 3 outages in 90 days, with a median recovery of 8 minutes.

uptime (30d checks)
100%
checks observed
4,727
outages (90d)
3
tools
8

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

Install Brian8a1 Atisbo MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http brian8a1-atisbo-mcp-server https://app.atisbo.dev/api/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

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

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: C (78/100)

C (78/100): 0 error(s), 3 warning(s) across 8 tool(s); ~10,248 tokens of tool definitions.
Scores higher than 14% of 15,682 MCP servers Glimind has audited.
Its tool list costs an agent ~10,248 tokens per session — more than 80% of servers.
77 → 78 since 2026-10-17
no tool-poisoning patterns
Schemas78
Descriptions55
Safety hints100
Token cost65
Client compatibility100
Protocol100
Reliability100
Stability20

What to fix (4)

4 tool definition(s) exceed ~1,200 tokens each (largest: atisbo_decide, ~2,827).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~5,454 tokens every session. How to fix →

Tools: atisbo_decide, atisbo_capture, atisbo_map, atisbo_lookup · saves ~5,454 tokens/session

61 parameter(s) across 4 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: atisbo_capture, atisbo_decide, atisbo_lookup, atisbo_map

2 tool(s) have parameters with no type (no type/enum/anyOf/$ref).

Give every parameter a "type" (or "enum"/"anyOf"). Untyped parameters make models guess — strings for numbers, objects for arrays. How to fix →

Tools: atisbo_capture, atisbo_decide

In the last 30 days: 0 tool(s) removed and 62 schema change(s).

Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →

Auto-fix: 2 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 4 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.brian8a1%2Fatisbo/fixes

atisbo_capture 1 change
{
  "name": "atisbo_capture",
  "description": "Capture Signals or knowledge; update, patch or add evidence to artefacts.",
  "inputSchema": {
    "type": "object",
    "required": [
      "mode"
    ],
    "properties": {
      "ops": {
        "type": "string"
      },
      "body": {
        "type": "string"
      },
      "mode": {
        "enum": [
          "signal",
          "signal_batch",
          "knowledge",
          "update_artefact",
          "patch_artefact",
          "add_artefact_evidence"
        ],
        "type": "string",
        "description": "Capture mode. Notes per mode in meta.guidance."
      },
      "note": {
        "type": "string",
        "maxLength": 500,
        "description": "Why it matters."
      },
      "text": {
        "type": "string",
        "maxLength": 5000,
        "minLength": 10,
        "description": "Signal text."
      },
      "items": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "text",
            "client_request_id"
          ],
          "properties": {
            "text": {
              "type": "string",
              "maxLength": 5000,
              "minLength": 10,
              "description": "Signal text; max 5000 chars."
            },
            "source": {
              "enum": [
                "manual",
                "github",
                "webhook"
              ],
              "type": "string"
            },
            "modality": {
              "enum": [
                "Q",
                "O",
                "M"
              ],
              "type": "string"
            },
            "classification": {
              "enum": [
                "problem",
                "idea",
                "question"
              ],
              "type": "string"
            },
            "client_request_id": {
              "type": "string",
              "maxLength": 200,
              "minLength": 8,
              "description": "Idempotency key."
            },
            "corrects_prior_evidence": {
              "type": "boolean"
            }
          }
        },
        "maxItems": 100,
        "description": "Batch; max 100 items."
      },
      "title": {
        "type": "string",
        "maxLength": 200,
        "description": "Knowledge title."
      },
      "source": {
        "enum": [
          "manual",
          "github",
          "webhook"
        ],
        "type": "string",
        "description": "Signal source."
      },
      "content": {
        "type": "string",
        "maxLength": 100000,
        "description": "Knowledge content."
      },
      "message": {
        "type": "string"
      },
      "node_id": {
        "type": "string",
        "format": "uuid",
        "description": "knowledge: alias for scope_id."
      },
      "patches": {
        "type": "string"
      },
      "category": {
        "type": "string",
        "maxLength": 60,
        "description": "knowledge: label hint ≤60 chars."
      },
      "claim_id": {
        "type": "string",
        "format": "uuid",
        "description": "knowledge: alias for scope_id."
      },
      "document": {
        "type": "object",
        "required": [
          "content"
        ],
        "properties": {
          "content": {
            "type": "string",
            "maxLength": 20000,
            "minLength": 10
          },
          "file_name": {
            "type": "string",
            "maxLength": 200
          },
          "mime_type": {
            "enum": [
              "text/html",
              "text/markdown"
            ],
            "type": "string"
          }
        },
        "description": "signal: backing doc → claim-scoped Knowledge."
      },
      "evidence": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 200,
            "description": "Evidence block title."
          },
          "status": {
            "enum": [
              "supported",
              "contradicted",
              "inconclusive",
              "tracking_missing",
              "informational"
            ],
            "type": "string",
            "description": "Relation to the hypothesis."
          },
          "provider": {
            "type": "string",
            "maxLength": 80,
            "description": "Provider name, e.g. posthog, amplitude, custom_sql."
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 500
            },
            "maxItems": 20,
            "description": "Provider warnings shown with the block."
          },
          "block_type": {
            "enum": [
              "query",
              "metric",
              "external_insight",
              "chart_snapshot",
              "link"
            ],
            "type": "string",
            "description": "Evidence block kind."
          },
          "confidence": {
            "type": "number",
            "maximum": 1,
            "minimum": 0,
            "description": "Confidence from 0 to 1."
          },
          "query_text": {
            "type": "string",
            "maxLength": 20000,
            "description": "Query, event name, API request, or investigation prompt."
          },
          "external_url": {
            "type": "string",
            "maxLength": 2048,
            "description": "External insight/dashboard/query URL, if available."
          },
          "interpretation": {
            "type": "string",
            "maxLength": 5000,
            "description": "What this evidence means in the artefact context."
          },
          "query_language": {
            "enum": [
              "hogql",
              "sql",
              "api_request",
              "natural_language",
              "event"
            ],
            "type": "string",
            "description": "Language of query_text."
          },
          "refresh_policy": {
            "enum": [
              "manual",
              "scheduled",
              "none"
            ],
            "type": "string",
            "description": "Refresh cadence for the snapshot."
          },
          "result_snapshot": {
            "type": "object",
            "properties": {
              "summary": {
                "type": "string",
                "maxLength": 5000,
                "description": "Text summary of tabular or non-numeric provider output."
              },
              "event_name": {
                "type": "string",
                "maxLength": 500,
                "description": "Provider event/metric name for refreshable metric blocks."
              },
              "data_points": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "date",
                    "value"
                  ],
                  "properties": {
                    "date": {
                      "type": "string",
                      "maxLength": 80
                    },
                    "value": {
                      "type": "number"
                    }
                  }
                },
                "maxItems": 365,
                "description": "Optional compact time series snapshot."
              },
              "latest_date": {
                "type": "string",
                "maxLength": 80,
                "description": "Date or timestamp for latest_value."
              },
              "latest_value": {
                "type": "number",
                "description": "Latest numeric value from the provider, when available."
              },
              "time_range_days": {
                "type": "number",
                "maximum": 365,
                "minimum": 1,
                "description": "Lookback window for refreshable metric blocks. Defaults to 30."
              }
            },
            "description": "Result snapshot; event_name + time_range_days make it refreshable."
          }
        },
        "description": "Evidence fields; document_id top-level."
      },
      "modality": {
        "enum": [
          "Q",
          "O",
          "M"
        ],
        "type": "string",
        "description": "Q=Quote, O=Observation, M=Metric; else inferred."
      },
      "patchOps": {
        "type": "string"
      },
      "scope_id": {
        "type": "string",
        "format": "uuid",
        "description": "Target scope UUID; required for node/claim/map (solution: omit/\"auto\")."
      },
      "file_name": {
        "type": "string",
        "maxLength": 200
      },
      "mime_type": {
        "type": "string",
        "maxLength": 120
      },
      "patch_ops": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "op",
            "section_id",
            "markdown"
          ],
          "properties": {
            "op": {
              "enum": [
                "append_to_section",
                "replace_section",
                "annotate",
                "add_section"
              ],
              "type": "string"
            },
            "kind": {
              "enum": [
                "note",
                "contradiction",
                "update"
              ],
              "type": "string"
            },
            "markdown": {
              "type": "string",
              "maxLength": 20000
            },
            "section_id": {
              "type": "string",
              "maxLength": 64
            }
          }
        },
        "maxItems": 20
      },
      "agent_name": {
        "type": "string",
        "maxLength": 120
      },
      "scope_type": {
        "enum": [
          "company",
          "workspace",
          "node",
          "claim",
          "solution",
          "map"
        ],
        "type": "string",
        "description": "Scope kind; company = workspace."
      },
      "attachments": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "data_base64",
            "file_name",
            "mime_type"
          ],
          "properties": {
            "file_name": {
              "type": "string",
              "maxLength": 200
            },
            "mime_type": {
              "enum": [
                "image/png",
                "image/jpeg",
                "image/webp",
                "application/pdf"
              ],
              "type": "string"
            },
            "data_base64": {
              "type": "string",
              "maxLength": 4200000,
              "minLength": 4,
              "description": "Base64."
            }
          },
          "description": "PNG/JPG/WebP/PDF; no extraction."
        },
        "maxItems": 5,
        "description": "1-5 files; 3 MB combined."
      },
      "document_id": {
        "type": "string",
        "format": "uuid",
        "description": "Living document UUID (artefact modes)."
      },
      "solution_id": {
        "type": "string",
        "format": "uuid",
        "description": "knowledge: alias for scope_id."
      },
      "capture_mode": {
        "enum": [
          "context_only",
          "signals_only",
          "context_and_signals"
        ],
        "type": "string",
        "description": "Knowledge routing."
      },
      "captured_from": {
        "type": "string",
        "maxLength": 120
      },
      "change_summary": {
        "type": "string",
        "maxLength": 300,
        "description": "patch_artefact: REQUIRED — change_summary (or note), one sentence of what changed."
      },
      "classification": {
        "enum": [
          "problem",
          "idea",
          "question"
        ],
        "type": "string",
        "description": "Signal classification hint."
      },
      "dirty_event_id": {
        "type": "string",
        "format": "uuid",
        "description": "Dirty event resolved"
      },
      "knowledge_kind": {
        "enum": [
          "auto",
          "transcript",
          "transcript_customer",
          "notes"
        ],
        "type": "string"
      },
      "coverage_updates": {
        "description": "buckets snippets/ideas/claims; snippets[].{snippet_id,status,rationale}",
        "type": "string"
      },
      "client_request_id": {
        "type": "string",
        "maxLength": 200,
        "minLength": 8,
        "description": "signal: retry key."
      },
      "proposed_solution": {
        "type": "object",
        "required": [
          "title"
        ],
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 200
          },
          "description": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "description": "signal: draft Solution born linked on the clustered claim."
      },
      "on_behalf_of_person": {
        "type": "boolean"
      },
      "expected_content_hash": {
        "type": "string",
        "maxLength": 64,
        "description": "doc_patch_context content_hash"
      },
      "corrects_prior_evidence": {
        "type": "boolean",
        "description": "signal: CORRECTS prior evidence — skips dedup (when/why in meta.guidance)."
      }
    }
  },
  "annotations": {
    "category": "write",
    "readOnlyHint": false,
    "strict_output": false,
    "destructiveHint": true,
    "supports_cursor": false,
    "supports_idempotency": true,
    "requires_confirmation": false,
    "supports_since_checkpoint": false
  }
}
atisbo_decide 1 change
{
  "name": "atisbo_decide",
  "description": "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.",
  "inputSchema": {
    "type": "object",
    "required": [
      "mode"
    ],
    "properties": {
      "id": {
        "type": "string",
        "format": "uuid",
        "description": "delete_knowledge/set_knowledge_category doc id."
      },
      "mode": {
        "enum": [
          "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"
        ],
        "type": "string",
        "description": "Resolve names to UUIDs before mutating; notes per mode in meta.guidance."
      },
      "note": {
        "type": "string",
        "maxLength": 5000,
        "description": "record_outcome 5000; triage/log_decision rationale 2000."
      },
      "spec": {
        "type": "object",
        "required": [
          "problem",
          "evidence",
          "hypothesis",
          "successCriteria"
        ],
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 500
            },
            "maxItems": 50
          },
          "problem": {
            "type": "string",
            "maxLength": 5000
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 1000
            },
            "maxItems": 30
          },
          "proposal": {
            "type": "string",
            "maxLength": 5000,
            "description": "What we will build; distinct from hypothesis."
          },
          "hypothesis": {
            "type": "string",
            "maxLength": 5000
          },
          "constraints": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 500
            },
            "maxItems": 50
          },
          "decisionLog": {
            "type": "object",
            "required": [
              "alternatives",
              "reasoning"
            ],
            "properties": {
              "reasoning": {
                "type": "string",
                "maxLength": 5000
              },
              "assumptions": {
                "type": "string",
                "maxLength": 3000
              },
              "alternatives": {
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 1000
                },
                "maxItems": 20
              }
            }
          },
          "successCriteria": {
            "type": "string",
            "maxLength": 5000,
            "description": "What must be TRUE at launch. Template: implementation_context."
          }
        }
      },
      "brief": {
        "type": "string",
        "maxLength": 20000,
        "description": "dispatch_solution: agent brief."
      },
      "force": {
        "type": "boolean",
        "description": "Audited source-deleting reassignment (omit refused)."
      },
      "title": {
        "type": "string",
        "maxLength": 500
      },
      "effort": {
        "type": "number",
        "maximum": 52,
        "minimum": 0.5,
        "description": "Size estimate, person-weeks (never affects order)."
      },
      "matrix": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "criterion",
            "status"
          ],
          "properties": {
            "note": {
              "type": "string",
              "maxLength": 500,
              "description": "Required for incomplete: alternative method, or blocker."
            },
            "status": {
              "enum": [
                "preview_verified",
                "production_verified",
                "not_applicable",
                "incomplete",
                "superseded"
              ],
              "type": "string"
            },
            "evidence": {
              "type": "string",
              "maxLength": 500,
              "description": "What you did and saw; required in spirit for *_verified."
            },
            "criterion": {
              "type": "string",
              "maxLength": 200,
              "description": "Success criterion, in the living doc's words."
            },
            "evidence_refs": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 300
              },
              "maxItems": 10,
              "description": "Durable refs: PR, dashboard, log."
            }
          }
        },
        "maxItems": 20,
        "description": "validate_delivery / deliver: one entry per criterion."
      },
      "pr_url": {
        "type": "string",
        "format": "uri",
        "maxLength": 500
      },
      "status": {
        "enum": [
          "signal",
          "noise",
          "review"
        ],
        "type": "string",
        "description": "Target classification."
      },
      "comment": {
        "type": "string",
        "maxLength": 10000,
        "description": "update_solution / deliver: thread report as the agent."
      },
      "mission": {
        "type": "string",
        "maxLength": 2000,
        "description": "update_strategy: informational only."
      },
      "node_id": {
        "type": "string",
        "format": "uuid"
      },
      "outcome": {
        "enum": [
          "success",
          "partial",
          "miss",
          "unexpected"
        ],
        "type": "string",
        "description": "record_outcome: launch impact."
      },
      "roadmap": {
        "type": "string",
        "maxLength": 5000,
        "description": "update_strategy: informational only."
      },
      "verdict": {
        "enum": [
          "real_fixed",
          "noise",
          "proceed",
          "defer",
          "drop"
        ],
        "type": "string",
        "description": "triage closes; log_decision takes the judgement answer."
      },
      "category": {
        "type": "string",
        "maxLength": 60,
        "description": "label to set; null clears."
      },
      "claim_id": {
        "type": "string",
        "format": "uuid",
        "description": "Claim UUID (atisbo_lookup mode=resolve)"
      },
      "decision": {
        "type": "string",
        "maxLength": 500,
        "description": "max 500 chars."
      },
      "strategy": {
        "type": "string",
        "maxLength": 5000,
        "description": "update_strategy: the only functional field."
      },
      "unassign": {
        "type": "boolean"
      },
      "claim_ids": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uuid"
        },
        "maxItems": 50
      },
      "kpi_after": {
        "type": "string",
        "maxLength": 200
      },
      "lifecycle": {
        "type": "string",
        "description": "IDEA|DESIGNING|IN_DEVELOPMENT; LAUNCHED only via update_solution."
      },
      "target_id": {
        "type": "string",
        "format": "uuid"
      },
      "agent_name": {
        "type": "string",
        "maxLength": 120,
        "description": "Signs comments/assignments/decisions."
      },
      "kpi_before": {
        "type": "string",
        "maxLength": 200
      },
      "risk_notes": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 1000
        },
        "maxItems": 50,
        "description": "Unresolved contradictions acknowledged by id."
      },
      "snippet_id": {
        "type": "string",
        "format": "uuid"
      },
      "updated_at": {
        "type": "string",
        "description": "Optimistic lock; stale edits fail STALE_DATA."
      },
      "description": {
        "type": "string",
        "maxLength": 2000
      },
      "document_id": {
        "type": "string",
        "format": "uuid"
      },
      "instruction": {
        "type": "string",
        "maxLength": 2000
      },
      "observed_at": {
        "type": "string",
        "format": "date-time"
      },
      "review_kind": {
        "enum": [
          "signal_triage",
          "claim_structure",
          "solution_quality"
        ],
        "type": "string"
      },
      "snooze_days": {
        "type": "number"
      },
      "solution_id": {
        "type": "string",
        "format": "uuid",
        "description": "Solution UUID (from a name or SEN-n: atisbo_lookup mode=resolve)"
      },
      "target_type": {
        "enum": [
          "claim",
          "solution",
          "snippet",
          "tenant",
          "pm_context",
          "node",
          "edge",
          "map",
          "chat_session",
          "context_document",
          "mcp_connection",
          "mcp_server_key",
          "decision_signal",
          "integration",
          "workspace",
          "access_link"
        ],
        "type": "string"
      },
      "alternatives": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 1000
        },
        "maxItems": 20
      },
      "out_of_scope": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 128
        },
        "maxItems": 100,
        "description": "check_coverage: ids intentionally NOT addressed."
      },
      "product_name": {
        "type": "string",
        "maxLength": 200
      },
      "snooze_clear": {
        "type": "boolean"
      },
      "clear_discard": {
        "type": "boolean"
      },
      "covered_ideas": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 128
        },
        "maxItems": 100,
        "description": "check_coverage: idea ids in the coverage map."
      },
      "decision_type": {
        "type": "string",
        "maxLength": 60,
        "description": "log_decision: e.g. product_decision, note; full list in the error."
      },
      "evidence_refs": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 500
        },
        "maxItems": 20,
        "description": "record_outcome: durable evidence refs."
      },
      "main_features": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "name",
            "description"
          ],
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 200
            },
            "description": {
              "type": "string",
              "maxLength": 1000
            }
          }
        }
      },
      "assign_node_id": {
        "type": "string",
        "format": "uuid",
        "description": "update_solution: taxonomy node."
      },
      "covered_claims": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 128
        },
        "maxItems": 50,
        "description": "check_coverage: claim ids this work implements."
      },
      "design_context": {
        "type": "string",
        "maxLength": 8000
      },
      "discard_reason": {
        "type": "string",
        "maxLength": 500,
        "description": "Divergence loser (ADR-224); CANCELED required. ≤500 chars."
      },
      "force_reassign": {
        "type": "boolean",
        "description": "Audited takeover of a Solution in progress."
      },
      "metric_current": {
        "type": "number",
        "description": "record_outcome (automated): fresh metric reading."
      },
      "pm_instruction": {
        "type": "string",
        "maxLength": 1000,
        "description": "update_strategy: the PM's request, quoted."
      },
      "priority_boost": {
        "type": "number",
        "maximum": 5,
        "minimum": 0.5,
        "description": "PM multiplier over evidence-weighted priority."
      },
      "assign_to_agent": {
        "type": "boolean",
        "description": "update_solution: take ownership."
      },
      "is_deal_breaker": {
        "type": "boolean",
        "description": "true = confirm/flag, false = reject/unflag."
      },
      "target_claim_id": {
        "type": "string",
        "format": "uuid",
        "description": "Claim UUID (atisbo_lookup mode=resolve)"
      },
      "attach_claim_ids": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uuid"
        },
        "maxItems": 20
      },
      "coverage_updates": {
        "description": "deliver: buckets snippets/ideas/claims.",
        "type": "string"
      },
      "detach_claim_ids": {
        "type": "array",
        "items": {
          "type": "string",
          "format": "uuid"
        },
        "maxItems": 20
      },
      "refresh_schedule": {
        "enum": [
          "none",
          "hourly",
          "daily",
          "weekly",
          "biweekly",
          "monthly"
        ],
        "type": "string"
      },
      "criteria_left_out": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 500
        },
        "maxItems": 20,
        "description": "Criteria left OUT (ADR-234); only with LAUNCHED."
      },
      "expected_behavior": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 500
        },
        "maxItems": 50,
        "description": "check_coverage: observable behavior delivered."
      },
      "replace_confirmed": {
        "type": "boolean",
        "description": "true confirms a shorter recorded delivery matrix replacing a longer one."
      },
      "snooze_indefinite": {
        "type": "boolean",
        "description": "until NEW EVIDENCE (not a timer)."
      },
      "chosen_solution_id": {
        "type": "string",
        "format": "uuid",
        "description": "update_solution: the winning sibling."
      },
      "clear_pm_exception": {
        "type": "boolean"
      },
      "outcome_confidence": {
        "enum": [
          "high",
          "medium",
          "low"
        ],
        "type": "string"
      },
      "on_behalf_of_person": {
        "type": "boolean"
      },
      "pm_exception_reason": {
        "type": "string",
        "maxLength": 1000,
        "description": "a PERSON's choice + alternatives; blockers → operational_block_reason."
      },
      "verification_method": {
        "type": "string",
        "maxLength": 500,
        "description": "record_outcome: how verified (max 500 chars)."
      },
      "contradictions_found": {
        "type": "boolean",
        "description": "record_outcome (automated): attest a contradiction sweep."
      },
      "clear_operational_block": {
        "type": "boolean"
      },
      "criteria_left_out_reason": {
        "type": "string",
        "maxLength": 1000,
        "description": "Why each is out; required with criteria_left_out."
      },
      "operational_block_reason": {
        "type": "string",
        "maxLength": 500,
        "description": "update_solution: operational blocker; not a decision. ≤500 chars."
      },
      "operational_block_category": {
        "enum": [
          "credentials",
          "permissions",
          "budget",
          "provider_capacity",
          "external_dependency"
        ],
        "type": "string"
      }
    }
  },
  "annotations": {
    "category": "write",
    "readOnlyHint": false,
    "strict_output": false,
    "destructiveHint": true,
    "supports_cursor": false,
    "supports_idempotency": true,
    "requires_confirmation": false,
    "supports_since_checkpoint": false
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/io.github.brian8a1/atisbo"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/io.github.brian8a1/atisbo"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.brian8a1%2Fatisbo.svg)](https://glimind.com/server/mcp-registry%2Fio.github.brian8a1%2Fatisbo?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fio.github.brian8a1%2Fatisbo?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.brian8a1%2Fatisbo.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.brian8a1%2Fatisbo.svg
   :target: https://glimind.com/server/mcp-registry%2Fio.github.brian8a1%2Fatisbo?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:2c648994a4f10086…, first seen 2026-10-24, included at leaf 58836 of 65,161. Version history · verify what your client received.

Tools (8)

Compare: most reliable data servers · most reliable knowledge servers · most reliable support servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Brian8a1 Atisbo MCP server down right now?

As of 2026-10-25 09:30 UTC, the Brian8a1 Atisbo MCP server is up with a Glimind reliability score of 96/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 3 outages in 90 days, with a median recovery of 8 minutes.

How many tools does Brian8a1 Atisbo MCP server provide?

Brian8a1 Atisbo MCP server advertises 8 tools, including atisbo_analyze, atisbo_capture, atisbo_connect, atisbo_decide, atisbo_lookup.

How do I install Brian8a1 Atisbo MCP server?

Point your MCP client at this streamable-http endpoint: https://app.atisbo.dev/api/mcp

Is the Brian8a1 Atisbo MCP server safe to connect to an AI agent?

Glimind scanned all 8 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Brian8a1 Atisbo MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve