{"name":"io.github.brian8a1/atisbo","slug":"brian8a1-atisbo","title":"Atisbo","description":"MCP tools over one Atisbo workspace: Signals, Opportunities, Backlog, Decisions, Living Documents.","url":"https://mcp.market/server/brian8a1-atisbo","rating":null,"grade":"C","score":64,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":20,"ok":20,"last_checked_at":"2026-09-24T08:01:53.680Z","last_ok_at":"2026-09-24T08:01:53.680Z","latency_ms":237},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://app.atisbo.dev/docs/api/mcp-server","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://app.atisbo.dev/api/mcp","headers":[{"description":"Workspace-scoped Atisbo MCP key. Create one in the app under Settings → Account → Connect agents.","isRequired":true,"value":"Bearer {atisbo_mcp_key}","isSecret":true,"name":"Authorization"}],"variables":{"atisbo_mcp_key":{"description":"MCP server key generated in the Atisbo app; scoped to one workspace and revocable there.","isRequired":true,"isSecret":true}}}],"packages":[],"tools":[{"name":"atisbo_analyze","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"subject":{"type":"string","description":"Dataset: claims (opportunities), solutions, or activity (decisions + events).","enum":["claims","solutions","activity"]},"mode":{"type":"string","description":"Alias for subject.","enum":["claims","solutions","activity"]},"domain":{"type":"string","description":"Free-text product area, resolved to map nodes.","minLength":2,"maxLength":120},"time_range":{"type":"object","description":"Preset (7d/30d/90d) or explicit from/to ISO dates. Defaults to 30d.","properties":{"from":{"type":"string"},"to":{"type":"string"},"preset":{"type":"string","description":"Relative time window preset.","enum":["7d","30d","90d"]}}},"filters":{"type":"object","description":"Filters: AND across fields, OR within a field.","properties":{"claim_status":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string","minLength":1}},"lifecycle":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"string","minLength":1}},"sources":{"type":"array","description":"Ingestion transport, NOT provenance — MCP captures store as `manual`. Ignored for claim/solution aggregates; use signal_origin instead.","minItems":1,"maxItems":20,"items":{"type":"string","minLength":1}},"signal_origin":{"type":"array","description":"customer voice, internal dogfooding, or operational incident — the axis `sources` cannot separate. A claim matches if ANY snippet matches, so a mixed claim lands under both.","minItems":1,"maxItems":3,"items":{"type":"string","enum":["customer","internal","operational"]}},"node_ids":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string","format":"uuid"}},"claim_ids":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","format":"uuid"}}}},"group_by":{"type":"array","description":"Row grouping dimensions (1-2).","minItems":1,"maxItems":2,"items":{"type":"string","description":"Row grouping dimension. lifecycle is an alias for status.","enum":["claim","node","day","week","status","source"]}},"metrics":{"type":"array","description":"Aggregate metrics per group (1-4).","minItems":1,"maxItems":4,"items":{"type":"string","description":"Aggregate metric computed per group.","enum":["claim_count","snippet_count","avg_power_score","decision_count","activity_count","effort_proxy_avg"]}},"analysis":{"type":"string","description":"summary (prose), table, or chart kind (bar/line/scatter); trend aliases line.","enum":["summary","table","bar","line","scatter"]},"limit":{"type":"number","description":"Max grouped rows (1–50, default 20); over-asks clamp."},"cursor":{"type":"string","description":"From stream.next_cursor — pages grouped rows beyond `limit`.","minLength":1}}}},{"name":"atisbo_capture","description":"Capture Signals or knowledge; update, patch or add evidence to artefacts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mode":{"type":"string","description":"Capture mode. Mode-specific notes return in meta.guidance after the call.","enum":["signal","signal_batch","knowledge","update_artefact","patch_artefact","add_artefact_evidence"]},"text":{"type":"string","description":"Signal text.","minLength":10,"maxLength":5000},"items":{"type":"array","description":"signal_batch, max 100.","minItems":1,"maxItems":100,"items":{"type":"object","properties":{"text":{"type":"string","description":"Signal text; max 5000 chars.","minLength":10,"maxLength":5000},"source":{"type":"string","enum":["manual","github","webhook"]},"modality":{"type":"string","enum":["Q","O","M"]},"classification":{"type":"string","enum":["problem","idea","question"]},"client_request_id":{"type":"string","description":"Idempotency key; max 200 chars.","minLength":8,"maxLength":200}},"required":["text","client_request_id"]}},"title":{"type":"string","description":"Knowledge or evidence title.","minLength":1,"maxLength":200},"content":{"type":"string","description":"Knowledge or artefact content.","minLength":1,"maxLength":100000},"change_summary":{"type":"string","description":"Artefact change summary.","minLength":1,"maxLength":300},"source":{"type":"string","description":"Signal source. Defaults to manual.","enum":["manual","github","webhook"]},"modality":{"type":"string","description":"Q=Quote, O=Observation, M=Metric. Pipeline infers if omitted.","enum":["Q","O","M"]},"classification":{"type":"string","description":"Signal classification hint.","enum":["problem","idea","question"]},"note":{"type":"string","description":"Why it matters or ingestion context.","maxLength":500},"scope_type":{"type":"string","description":"Scope kind; company is treated as active workspace.","enum":["company","workspace","node","claim","solution","map"]},"scope_id":{"type":"string","description":"Target scope UUID.","format":"uuid"},"capture_mode":{"type":"string","description":"Knowledge routing; default signals_only.","enum":["context_only","signals_only","context_and_signals"]},"knowledge_kind":{"type":"string","enum":["auto","transcript","transcript_customer","notes"]},"category":{"type":"string","description":"knowledge: free-form category/folder label, ≤60 chars. Change via atisbo_decide mode=set_knowledge_category; filter via atisbo_lookup mode=knowledge.","minLength":1,"maxLength":60},"file_name":{"type":"string","minLength":1,"maxLength":200},"mime_type":{"type":"string","minLength":1,"maxLength":120},"captured_from":{"type":"string","minLength":1,"maxLength":120},"corrects_prior_evidence":{"type":"boolean","description":"signal: CORRECTS prior evidence, not repeats it."},"attachments":{"type":"array","description":"1-5 files; 3 MB combined.","minItems":1,"maxItems":5,"items":{"type":"object","description":"PNG/JPG/WebP/PDF; no extraction.","properties":{"data_base64":{"type":"string","description":"Base64, ≤4200000 chars.","minLength":4,"maxLength":4200000},"file_name":{"type":"string","description":"Name, ≤200 chars.","minLength":1,"maxLength":200},"mime_type":{"type":"string","enum":["image/png","image/jpeg","image/webp","application/pdf"]}},"required":["data_base64","file_name","mime_type"]}},"document_id":{"type":"string","description":"Living document UUID for artefact modes.","format":"uuid"},"patch_ops":{"type":"array","maxItems":20,"items":{"type":"object","properties":{"op":{"type":"string","enum":["append_to_section","replace_section","annotate","add_section"]},"section_id":{"type":"string","description":"Section id, ≤64 chars.","minLength":1,"maxLength":64},"markdown":{"type":"string","description":"Body, ≤20000 chars.","minLength":1,"maxLength":20000},"kind":{"type":"string","enum":["note","contradiction","update"]}},"required":["op","section_id","markdown"]}},"coverage_updates":{"type":"object","description":"Snippet/idea/claim coverage updates.","properties":{}},"expected_content_hash":{"type":"string","description":"content_hash from doc_patch_context","minLength":1,"maxLength":64},"dirty_event_id":{"type":"string","description":"Dirty event resolved on success","format":"uuid"},"agent_name":{"type":"string","description":"Signs the change.","minLength":1,"maxLength":120},"evidence":{"type":"object","description":"Evidence fields; document_id is top-level.","properties":{"block_type":{"type":"string","description":"Evidence block kind.","enum":["query","metric","external_insight","chart_snapshot","link"]},"provider":{"type":"string","description":"Provider name, e.g. posthog, amplitude, custom_sql.","minLength":1,"maxLength":80},"title":{"type":"string","description":"Evidence block title.","minLength":1,"maxLength":200},"query_text":{"type":"string","description":"Query, event name, API request, or investigation prompt.","maxLength":20000},"query_language":{"type":"string","description":"Language of query_text.","enum":["hogql","sql","api_request","natural_language","event"]},"external_url":{"type":"string","description":"External insight/dashboard/query URL, if available.","maxLength":2048},"result_snapshot":{"type":"object","description":"Result snapshot; event_name + time_range_days make it refreshable.","properties":{"event_name":{"type":"string","description":"Provider event/metric name for refreshable metric blocks.","minLength":1,"maxLength":500},"time_range_days":{"type":"number","description":"Lookback window for refreshable metric blocks. Defaults to 30.","minimum":1,"maximum":365},"latest_value":{"type":"number","description":"Latest numeric value from the provider, when available."},"latest_date":{"type":"string","description":"Date or timestamp for latest_value.","maxLength":80},"data_points":{"type":"array","description":"Optional compact time series snapshot.","maxItems":365,"items":{"type":"object","properties":{"date":{"type":"string","maxLength":80},"value":{"type":"number"}},"required":["date","value"]}},"summary":{"type":"string","description":"Text summary of tabular or non-numeric provider output.","maxLength":5000}}},"interpretation":{"type":"string","description":"What this evidence means in the artefact context.","maxLength":5000},"status":{"type":"string","description":"Relation to the hypothesis.","enum":["supported","contradicted","inconclusive","tracking_missing","informational"]},"confidence":{"type":"number","description":"Confidence from 0 to 1.","minimum":0,"maximum":1},"warnings":{"type":"array","description":"Provider warnings shown with the block.","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":500}},"refresh_policy":{"type":"string","description":"Refresh cadence for the snapshot.","enum":["manual","scheduled","none"]}}}},"required":["mode"]}},{"name":"atisbo_connect","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mode":{"type":"string","description":"list/catalog need no ids; others need connection_id or create fields.","enum":["list","catalog","create","configure","pause","resume","sync_now","composio_catalog","composio_actions","composio_create","composio_authorize"]},"connection_id":{"type":"string","description":"Connection id from mode=list; required for configure/pause/resume/sync_now.","format":"uuid"},"query":{"type":"string","description":"mode=catalog only: filter by name, category or description.","maxLength":100},"recipe_id":{"type":"string","description":"mode=create: catalog recipe id — applies its curated mapping.","maxLength":100},"kind":{"type":"string","description":"mode=create: \"email\" provisions the ingest address; default webhook.","enum":["webhook","email"]},"label":{"type":"string","description":"create/configure: human name for the source, e.g. \"Freshdesk\".","maxLength":120},"source_category":{"type":"string","description":"mode=create with your own mapping: what the payload carries.","enum":["conversation_message","survey_response","document_revision","transcript_session","operational_event"]},"json_paths":{"type":"object","description":"create/configure: dotted paths into the POSTed payload's JSON body.","properties":{"raw_text":{"type":"string","description":"REQUIRED: path to the customer's own words, e.g. \"ticket.description\"."},"source":{"type":"string"},"channel":{"type":"string"},"deep_link_url":{"type":"string","description":"Path to a URL opening the item in the origin tool."},"user_id":{"type":"string","description":"Path to who said it — enables company attribution."},"native_object_id":{"type":"string"},"native_revision_id":{"type":"string"},"occurred_at":{"type":"string","description":"Path to the timestamp; else ingestion time."}},"required":["raw_text"]},"rate_limit":{"type":"number","description":"create/configure: max requests per minute accepted. Default 100.","maximum":10000},"skip_attribution":{"type":"boolean","description":"mode=create: true for anonymous public-forum sources with no attributable customer."},"provider":{"type":"string","description":"mode=create: NATIVE provider from catalog native_providers. Pair with config.","maxLength":40},"config":{"type":"object","description":"mode=create with provider: catalog required_fields. Stored encrypted, never readable again.","properties":{}},"sync_every":{"type":"string","description":"PULL sources only: cadence. Default daily.","enum":["hourly","daily","weekly"]},"toolkit":{"type":"string","description":"composio_actions / composio_create: Composio app slug (e.g. \"freshdesk\", \"jira\").","maxLength":80},"trigger_slug":{"type":"string","description":"composio_create, INSTANT apps: trigger from composio_catalog.","maxLength":120},"pull_tool":{"type":"string","description":"composio_create, DAILY apps: read-only action from composio_actions.","maxLength":120},"pull_arguments":{"type":"object","description":"composio_create with pull_tool: arguments the action needs.","properties":{}},"collection_path":{"type":"string","description":"composio_create with pull_tool: dotted path to the record array, when not inferable.","maxLength":200}}}},{"name":"atisbo_decide","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"solutionId":{"type":"string","description":"Alias for solution_id","format":"uuid"},"solution_id":{"type":"string","description":"Solution UUID — resolve names with atisbo_lookup mode=resolve first","format":"uuid"},"effort":{"type":"number","description":"Size estimate in person-weeks (0.5-52). Sizing only — never affects Backlog order.","minimum":0.5,"maximum":52},"rice_effort":{"type":"number","description":"Alias for effort.","minimum":0.5,"maximum":52},"mode":{"type":"string","description":"Resolve names to UUIDs before mutating; mode-specific notes return in meta.guidance.","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","confirm_deal_breaker","reject_deal_breaker","flag_deal_breaker","declare_pm_exception","delete_knowledge","set_knowledge_category","set_claim_review_status","set_snippet_status","check_coverage","mark_reviewed","validate_delivery"]},"claim_id":{"type":"string","description":"Claim UUID — resolve names with atisbo_lookup mode=resolve first","format":"uuid"},"claimId":{"type":"string","format":"uuid"},"claim_ids":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string","format":"uuid"}},"target_id":{"type":"string","format":"uuid"},"id":{"type":"string","description":"delete_knowledge / set_knowledge_category: doc id.","format":"uuid"},"category":{"type":"string","minLength":1,"maxLength":60,"description":"set_knowledge_category: free-form label, ≤60 chars; pass null to clear."},"target_type":{"type":"string","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"]},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","description":"≤2000 chars.","maxLength":2000},"effort_estimate":{"type":"number","minimum":0.5,"maximum":52},"verdict":{"type":"string","description":"mode=triage: BOTH values close the claim — see guidance.","enum":["real_fixed","noise"]},"note":{"type":"string","maxLength":5000},"snippet_id":{"type":"string","format":"uuid"},"target_claim_id":{"type":"string","description":"Claim UUID — resolve names with atisbo_lookup mode=resolve first","format":"uuid"},"force":{"type":"boolean","description":"Confirms a source-deleting reassignment; omit = CONFIRMATION_REQUIRED."},"lifecycle":{"type":"string","description":"IDEA, DESIGNING, IN_DEVELOPMENT, or LAUNCHED."},"snooze_days":{"type":"number","maximum":9007199254740991},"snooze_clear":{"type":"boolean"},"priority_boost":{"type":"number","description":"update_solution: PM multiplier 0.5-5.0 (Backlog lever).","minimum":0.5,"maximum":5},"comment":{"type":"string","description":"update_solution: thread report as the agent.","minLength":1,"maxLength":10000},"agent_name":{"type":"string","description":"Signs comments/assignments/decisions. Default \"Agent\".","minLength":1,"maxLength":120},"brief":{"type":"string","description":"dispatch_solution: agent brief.","maxLength":20000},"force_reassign":{"type":"boolean","description":"dispatch_solution: take over an in-progress Solution; audited. Omit refuses a contested dispatch."},"assign_to_agent":{"type":"boolean","description":"update_solution: take ownership."},"pm_exception_reason":{"type":"string","description":"update_solution / declare_pm_exception: needs a PERSON product decision; not ops — see operational_block_reason.","minLength":1,"maxLength":500},"clear_pm_exception":{"type":"boolean"},"discard_reason":{"type":"string","description":"update_solution: divergence loser (ADR-224); requires CANCELED.","minLength":1,"maxLength":500},"clear_discard":{"type":"boolean"},"chosen_solution_id":{"type":"string","description":"update_solution: the winning sibling.","format":"uuid"},"operational_block_reason":{"type":"string","description":"update_solution: operational blocker; not a decision.","minLength":1,"maxLength":500},"operational_block_category":{"type":"string","enum":["credentials","permissions","budget","provider_capacity","external_dependency"]},"clear_operational_block":{"type":"boolean"},"criteria_left_out":{"type":"array","description":"update_solution: criteria left OUT (ADR-234); only with LAUNCHED.","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":500}},"criteria_left_out_reason":{"type":"string","description":"update_solution: why; required with criteria_left_out.","minLength":1,"maxLength":500},"unassign":{"type":"boolean"},"assign_node_id":{"type":"string","description":"update_solution: taxonomy node.","format":"uuid"},"attach_claim_ids":{"type":"array","maxItems":20,"items":{"type":"string","format":"uuid"}},"detach_claim_ids":{"type":"array","maxItems":20,"items":{"type":"string","format":"uuid"}},"pr_url":{"type":"string","format":"uri","maxLength":500},"refresh_schedule":{"type":"string","enum":["none","hourly","daily","weekly","biweekly","monthly"]},"document_id":{"type":"string","format":"uuid"},"outcome":{"type":"string","description":"record_outcome: launch impact.","enum":["success","partial","miss","unexpected"]},"kpi_before":{"type":"string","maxLength":200},"kpi_after":{"type":"string","maxLength":200},"evidence_refs":{"type":"array","description":"record_outcome: durable evidence refs.","minItems":1,"maxItems":20,"items":{"type":"string","minLength":1,"maxLength":500}},"verification_method":{"type":"string","description":"record_outcome: how verified.","minLength":1,"maxLength":500},"observed_at":{"type":"string","format":"date-time"},"outcome_confidence":{"type":"string","enum":["high","medium","low"]},"metric_current":{"type":"number","description":"record_outcome (automated): fresh metric reading."},"contradictions_found":{"type":"boolean","description":"record_outcome (automated): attest a contradiction sweep."},"outcome_classification":{"type":"string","description":"Alias for outcome.","enum":["success","partial","miss","unexpected"]},"outcome_notes":{"type":"string","description":"Alias for note.","maxLength":5000},"spec":{"type":"object","properties":{"problem":{"type":"string","minLength":1,"maxLength":5000},"evidence":{"type":"array","maxItems":30,"items":{"type":"string","minLength":1,"maxLength":1000}},"proposal":{"type":"string","description":"What we will build; distinct from hypothesis.","minLength":1,"maxLength":5000},"hypothesis":{"type":"string","minLength":1,"maxLength":5000},"files":{"type":"array","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":500}},"constraints":{"type":"array","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":500}},"successCriteria":{"type":"string","minLength":1,"maxLength":5000},"decisionLog":{"type":"object","properties":{"alternatives":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":1000}},"assumptions":{"type":"string","maxLength":3000},"reasoning":{"type":"string","maxLength":5000}},"required":["alternatives","reasoning"]}},"required":["problem","evidence","hypothesis","successCriteria"]},"product_name":{"type":"string","minLength":1,"maxLength":200},"mission":{"type":"string","description":"update_strategy: informational only. ≤2000.","maxLength":2000},"strategy":{"type":"string","description":"update_strategy: the only functional field.","maxLength":5000},"roadmap":{"type":"string","description":"update_strategy: informational only. ≤5000.","maxLength":5000},"main_features":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":1000}},"required":["name","description"]}},"decision_type":{"type":"string","enum":["triage","lifecycle_change","rice_update","outcome_recorded","iteration_branch","create","delete","github_event","rename","note","merge","split","reassign","anchor_change","metric_bound","product_decision","update","favorite_toggle","dismiss","revoke","test","export","link_created","link_revoked","link_accepted","deal_breaker_confirm","deal_breaker_reject","account_assign","account_merge","cluster_recomputed","living_doc_created","living_doc_updated","living_doc_reverted","living_doc_edited","living_doc_content_deleted","living_doc_rewritten","living_doc_opened","artefact_doc_created","artifact_shared","artifact_unshared"]},"decision":{"type":"string"},"alternatives":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":1000}},"design_context":{"type":"string","maxLength":8000},"instruction":{"type":"string","maxLength":2000},"is_deal_breaker":{"type":"boolean","description":"true = flag, false = unflag."},"updated_at":{"type":"string","description":"Optimistic lock; stale edits fail STALE_DATA."},"node_id":{"type":"string","format":"uuid"},"status":{"type":"string","description":"Target classification.","enum":["signal","noise","review"]},"covered_claims":{"type":"array","description":"check_coverage: claim ids this work implements. 50 ids ×128 chars.","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":128}},"covered_ideas":{"type":"array","description":"check_coverage: idea ids from the coverage map. 100 ids ×128 chars.","maxItems":100,"items":{"type":"string","minLength":1,"maxLength":128}},"expected_behavior":{"type":"array","description":"check_coverage: observable behavior delivered. 50 strings ×500 chars.","maxItems":50,"items":{"type":"string","maxLength":500}},"out_of_scope":{"type":"array","description":"check_coverage: ids intentionally NOT addressed. 100 ids ×128 chars.","maxItems":100,"items":{"type":"string","minLength":1,"maxLength":128}},"risk_notes":{"type":"array","description":"check_coverage: acknowledge unresolved contradictions by id. 50 notes ×1000 chars.","maxItems":50,"items":{"type":"string","maxLength":1000}},"review_kind":{"type":"string","enum":["signal_triage","claim_structure","solution_quality"]},"matrix":{"type":"array","description":"validate_delivery: one entry per success criterion. ≤20 entries.","minItems":1,"maxItems":20,"items":{"type":"object","properties":{"criterion":{"type":"string","description":"Success criterion, in the living doc's words where possible. Max 200.","minLength":1,"maxLength":200},"status":{"type":"string","enum":["preview_verified","production_verified","not_applicable","incomplete","superseded"]},"evidence":{"type":"string","description":"What you did and saw — required in spirit for *_verified. Max 500.","maxLength":500},"evidence_refs":{"type":"array","description":"Durable refs: PR, dashboard, log. Up to 10 of 300 chars.","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":300}},"note":{"type":"string","description":"Required for an incomplete to be accepted: alternative method, or blocker. Max 500.","maxLength":500}},"required":["criterion","status"]}}},"required":["mode"]}},{"name":"atisbo_lookup","description":"Find or open Atisbo entities. Modes expose snippet text + attachment URLs, queues, outcomes and implementation context.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mode":{"type":"string","description":"Named by its enum value; mode-specific notes return in meta.guidance after the call.","enum":["open","resolve","claims","claim","similar_claims","solutions","solution","outcome_review","similar_solutions","work_queue","orphans","maps","map","node","context","knowledge","living_doc","attachments","accounts","deal_breakers","doc_patch_context","implementation_context"]},"ref":{"type":"string","description":"open: a handle ref, e.g. claim:UUID or snippet://UUID.","minLength":3,"maxLength":120},"refs":{"type":"array","description":"open: several refs (max 10).","minItems":1,"maxItems":10,"items":{"type":"string","minLength":3,"maxLength":120}},"query":{"type":"string","description":"Search text (resolve/context).","minLength":2,"maxLength":500},"types":{"type":"array","description":"resolve: entity kinds.","minItems":1,"maxItems":4,"items":{"type":"string","enum":["claim","solution","node","map"]}},"target_id":{"type":"string","description":"Generic UUID for claim/solution/node/map/doc.","format":"uuid"},"claim_id":{"type":"string","description":"Claim UUID — resolve names with atisbo_lookup mode=resolve first","format":"uuid"},"solution_id":{"type":"string","description":"Solution UUID — resolve names with atisbo_lookup mode=resolve first","format":"uuid"},"node_id":{"type":"string","description":"Node UUID.","format":"uuid"},"map_id":{"type":"string","description":"Map UUID.","format":"uuid"},"document_id":{"type":"string","description":"Living document UUID.","format":"uuid"},"dirty_event_id":{"type":"string","description":"doc_patch_context: loads this event's snippets.","format":"uuid"},"scope":{"type":"string","description":"Scope for context / living_doc list.","enum":["company","node","claim","solution","map"]},"scope_id":{"type":"string","description":"Scope UUID unless scope=company.","format":"uuid"},"status":{"type":"string","description":"Status filter — see guidance for \"archived\".","enum":["active","all","archived"]},"anchored":{"type":"string","description":"Claim list anchoring filter.","enum":["any","anchored","unanchored"]},"include_stale":{"type":"boolean","description":"claims: include stale (no snippet in 30d)."},"focus":{"type":"string","description":"claims: agent_work (default) | all.","enum":["agent_work","all"]},"lifecycle":{"type":"array","description":"Solution lifecycle filters.","minItems":1,"maxItems":10,"items":{"type":"string","enum":["IDEA","DESIGNING","IN_DEVELOPMENT","IN_REVIEW","LAUNCHED","CANCELED"]}},"sort_by":{"type":"string","description":"Solution list order (priority = evidence-weighted × boost).","enum":["priority","created_at","lifecycle"]},"state":{"type":"string","description":"work tokens (todo=DESIGNING, active=agent-consumable) or post-launch kinds — the Backlog UI partition.","enum":["active","todo","draft","in_review","launched","monitoring","needs_review","came_back","didnt_work","partly_worked","worked","delivered","replaced","canceled"]},"claim_state":{"type":"string","description":"claims/work_queue Claim state; open=untouched.","enum":["open","in_progress","resolved"]},"type":{"type":"string","description":"claims: classification.","enum":["problem","idea","question","unclassified"]},"depth":{"type":"string","description":"summary (alias: brief) = compact fields; work = full context (default).","enum":["summary","work"]},"debug_score":{"type":"boolean","description":"claim mode: PowerScore factor breakdown."},"limit":{"type":"number","description":"Max results; each delegated mode clamps to its own ceiling."},"evidence_limit":{"type":"number","description":"claim mode: max evidence rows on page one (1–25); the stream cursor reaches the rest.","minimum":1,"maximum":25},"cursor":{"type":"string","description":"Pagination cursor from a previous response.","minLength":1},"action_cursor":{"type":"string","description":"work_queue action_queue cursor; restart at page 1 after a mutation.","minLength":1},"exception_cursor":{"type":"string","description":"work_queue: pages pm_exceptions.","minLength":1},"operational_block_cursor":{"type":"string","description":"work_queue: pages operational_blocks.","minLength":1},"judgement_cursor":{"type":"string","description":"work_queue: pages delegation.needs_judgement.","minLength":1},"review_kind":{"type":"string","description":"unreviewed only (see atisbo_decide mode=mark_reviewed).","enum":["signal_triage","claim_structure","solution_quality"]},"category":{"type":"string","description":"knowledge: exact category filter. ≤60 chars.","minLength":1,"maxLength":60}},"required":["mode"]}},{"name":"atisbo_map","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mode":{"type":"string","description":"Mode-specific notes return in meta.guidance after the call.","enum":["apply","create","rename","delete","generate_nodes","create_node","update_node","delete_node","anchor","create_edge","delete_edge","metric_bind","metric_update","preview_claim_snipes","sync_claim_snipes","regroup","link_claims"]},"claim_ids":{"type":"array","description":"link_claims: claims to place under node_id.","minItems":1,"maxItems":200,"items":{"type":"string","format":"uuid"}},"note":{"type":"string","description":"link_claims: why these claims sit under this driver; stored on every link.","maxLength":500},"name":{"type":"string","description":"Map, node, or metric name depending on mode.","minLength":1,"maxLength":200},"description":{"type":"string","description":"Map/node/branch description. ≤2000 chars.","maxLength":2000},"map_id":{"type":"string","description":"Map UUID.","format":"uuid"},"node_id":{"type":"string","description":"Node UUID.","format":"uuid"},"parent_id":{"type":"string","description":"Parent node UUID.","format":"uuid"},"new_parent_id":{"type":"string","format":"uuid","description":"Move target parent; null promotes to root."},"level":{"type":"number","description":"Node hierarchy depth.","minimum":1,"maximum":5},"new_level":{"type":"number","description":"New depth after a move.","minimum":1,"maximum":5},"template":{"type":"string","enum":["taxonomy","metric_tree","goal_tree","opportunity_solution_tree","freeform"]},"map_type":{"type":"string","enum":["taxonomy","kpi_tree","ost","custom"]},"context_answers":{"type":"object","description":"Grounding answers for AI map generation.","properties":{}},"branches":{"type":"array","description":"Branches for apply mode.","minItems":1,"maxItems":50,"items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","description":"Branch description. ≤2000 chars.","maxLength":2000},"claim_ids":{"type":"array","maxItems":500,"items":{"type":"string","format":"uuid"}}},"required":["name"]}},"claim_id":{"type":"string","description":"Claim UUID — resolve names with atisbo_lookup mode=resolve first","format":"uuid"},"snippet_id":{"type":"string","format":"uuid"},"anchors":{"type":"array","description":"Batch claim anchors.","minItems":1,"maxItems":200,"items":{"type":"object","properties":{"claim_id":{"type":"string","format":"uuid"},"node_id":{"type":"string","format":"uuid"}}}},"edge_id":{"type":"string","description":"Edge UUID for delete_edge mode.","format":"uuid"},"source_map_id":{"type":"string","format":"uuid"},"source_node_id":{"type":"string","format":"uuid"},"target_node_id":{"type":"string","format":"uuid"},"edge_type":{"type":"string","enum":["causal","sequential","associative"]},"label":{"type":"string","maxLength":100},"metric_name":{"type":"string","minLength":1,"maxLength":200},"provider":{"type":"string","description":"Metric provider, e.g. posthog, amplitude, stripe, manual.","minLength":1},"event_name":{"type":"string","maxLength":200},"time_range_days":{"type":"number","minimum":-9007199254740991,"maximum":9007199254740991},"target_value":{"type":"number"},"metric_type":{"type":"string","enum":["input","north_star","business_kpi"]},"binding_id":{"type":"string","description":"metric_update: binding to update — from atisbo_lookup mode=node (metrics[].id).","format":"uuid"},"bindingId":{"type":"string","description":"Alias for binding_id.","format":"uuid"},"current_value":{"type":"number","description":"metric_update: today's value; same-day re-entry replaces, not stacks."},"currentValue":{"type":"number","description":"Alias for current_value."},"historical_data":{"type":"array","description":"metric_update: full series REPLACEMENT. Omit to append current_value as a same-day point instead.","maxItems":365,"items":{"type":"object","properties":{"date":{"type":"string"},"value":{"type":"number"}},"required":["date","value"]}},"historicalData":{"type":"array","description":"Alias for historical_data.","maxItems":365,"items":{"type":"object","properties":{"date":{"type":"string"},"value":{"type":"number"}},"required":["date","value"]}},"updated_at":{"type":"string","description":"metric_update: binding updated_at from your last read; concurrent edits fail STALE_DATA rather than overwrite.","format":"date-time"},"updatedAt":{"type":"string","description":"Alias for updated_at.","format":"date-time"},"grouping_mode":{"type":"string","enum":["classification","mece","tasks","journey","severity","custom"]},"assignments":{"type":"array","maxItems":500,"items":{"type":"object","description":"One snippet per L2 branch: snippet_id + branch_key (branch_name derives).","properties":{"snippet_id":{"type":"string","format":"uuid"},"snippetId":{"type":"string","format":"uuid"},"branch_key":{"type":"string","minLength":1,"maxLength":120},"branchKey":{"type":"string","minLength":1,"maxLength":120},"branch_name":{"type":"string","minLength":1,"maxLength":200},"branchName":{"type":"string","minLength":1,"maxLength":200}}}},"branch_options":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":120},"label":{"type":"string","minLength":1,"maxLength":200}},"required":["key","label"]}},"direction":{"type":"string","description":"regroup: broader merges similar claims, specific splits claims apart.","enum":["broader","specific"]},"regroup_level":{"type":"string","description":"For mode=regroup, direction=broader: how aggressively to merge.","enum":["conservative","moderate","aggressive"]},"target_threshold":{"type":"number","description":"For mode=regroup, direction=specific: split similarity threshold (0.50–0.98).","minimum":0.5,"maximum":0.98},"preview":{"type":"boolean","description":"regroup: read-only preview of the merge/split. ALWAYS preview before executing."}},"required":["mode"]}},{"name":"atisbo_orient","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mode":{"type":"string","description":"snapshot (alias: workspace) uses task; whats_new uses since_checkpoint; strategy/integrations need no IDs.","enum":["snapshot","whats_new","strategy","integrations"]},"task":{"type":"string","description":"triage = untriaged inbox; planning = confirmed opportunities by priority; operations = signals & integrations; executive = KPIs & strategy.","enum":["triage","planning","operations","executive"]},"depth":{"type":"string","description":"summary (alias: brief) = compact fields; work = full context (default).","enum":["summary","work"]},"limit":{"type":"number","description":"Max items. snapshot clamps to 20; whats_new to 50."},"cursor":{"type":"string","description":"Pagination cursor from a previous response.","minLength":1},"since_checkpoint":{"type":"string","description":"ISO 8601 checkpoint for delta reads; invalid values are ignored."}}}},{"name":"atisbo_support","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"problem":{"type":"string","description":"What went wrong, in your words. Do NOT paste customer feedback, document bodies or credentials — this string IS filed if a report is created.","minLength":10,"maxLength":2000},"area":{"type":"string","description":"Narrows which checks run. Omit when unsure — the full set costs the same round-trip.","enum":["ingestion","integrations","clustering","mcp","workspace","billing","unknown"]},"observed_error":{"type":"string","description":"The failing error string VERBATIM — diagnostics cannot see the failed call, so this is often the only evidence.","maxLength":1000},"share_report":{"type":"boolean","description":"File a verdict-only report when the problem is not caller-side; false = diagnose only."}},"required":["problem"]}}],"scan":{"score":64,"grade":"C","scanned_at":"2026-09-21T13:07:12.378Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-21T13:07:12.389Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 489ms"]},"poisoning":{"score":15,"max":15,"notes":["8 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://app.atisbo.dev/api/mcp","reachable":true,"authRequired":false,"latencyMs":489,"serverInfo":{"name":"atisbo-mcp-server","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://app.atisbo.dev/icon.svg?icon.053_--2ehf0m8.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}