{
 "$schema": "https://agentdrives.com/schemas/tool.schema.json",
 "id": "prd_01m5kmy7xq09adcwhsf66jbh9a",
 "ids": {
  "org": "org_01m5kmy7xqygrrjh39q12dnepz",
  "surfaces": {
   "web": "srf_01m5kmy7xqvkwgdfr7z7ny9nr7",
   "api": "srf_01m5kmy7xqvjdjt9423qwxrjyv",
   "mcp": "srf_01m5kmy7xrxd75xz98788ag1m9"
  },
  "slugs": [
   "usememos"
  ],
  "domain": "usememos.com"
 },
 "slug": "usememos",
 "name": "Memos",
 "url": "https://usememos.com",
 "domain": "usememos.com",
 "category": "workspace",
 "category_name": "Docs and workspace",
 "tested_at": "2026-10-23",
 "run": "20261023T052827Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261023T052827Z",
   "date": "2026-10-23",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": null,
    "robots": "skip"
   },
   "stop": "signup",
   "drives": 2
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "not_counted": null,
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "na",
   "text": "No plan to buy",
   "value": "nothing",
   "route": "none"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Learn",
   "state": "no",
   "text": "No docs it can act on",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "unreachable"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "na",
   "text": "No plan to buy",
   "value": "nothing",
   "route": "none",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": "0/8",
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 90,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 90,
  "security": null,
  "standards": [
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 2,
    "value": "3.0.3"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "coverage_own": null,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 4,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "4557b0885929",
  "kb_version": "3+overlay-1c6cbb2182",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 24,
 "rules_date": "2026-10-20",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 4,
  "signed": true,
  "inbox": null,
  "robots": "skip"
 },
 "same_level_drives": 1,
 "drives": 2,
 "same_stop_drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "newer_drives": null,
 "nothing_to_pay": true,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Cloudflare managed challenge (interstitial)",
  "visible": true,
  "type": "network",
  "human": null,
  "how": "Let verified bots and signed agents past the check on sign-up: in Cloudflare, add a WAF custom rule that skips the bot challenge on your sign-up paths for verified bots and for signed agents (rule field cf.bot_management.signed_agent; since 1 July 2026 signed agents count as verified bots), and render Turnstile only when the request is not from a verified agent.",
  "signed": true,
  "second_look": {
   "outcome": "stopped",
   "at": "2026-10-23T05:31:12.894Z"
  }
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "edge"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-23"
  },
  "browser": {
   "state": "through",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": true
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt and llms-full.txt (508 KB, the whole docs) read without a browser; every HTML docs page, the sitemap and the API reference answer a Cloudflare managed challenge. OpenAPI 3.0.3 read from the GitHub repo."
  },
  "signup": {
   "status": "human",
   "cause": "check",
   "note": "The only instance the vendor runs, demo.usememos.com, sits behind a Cloudflare managed challenge on every path: the API sign-up (POST /api/v1/users) got 403 cf-mitigated: challenge, and the sign-up page showed an interstitial in our agent's browser that never cleared."
  },
  "verify": {
   "status": "",
   "note": "Memos sign-up is username and password, with no email verification.",
   "reached": false
  },
  "credentials": {
   "status": "",
   "cause": "check",
   "note": "A documented browser-free route exists (POST /api/users/{user}/personalAccessTokens), but no account could be made: the Cloudflare challenge covers the API too.",
   "reached": false
  },
  "first_call": {
   "status": "",
   "cause": "check",
   "route": "account",
   "note": "Every API and MCP path on demo.usememos.com answered 403 cf-mitigated: challenge.",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "Not reached: no account and no token.",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "n/a",
   "rails": [],
   "rail_ids": [],
   "first_party": false,
   "rail_scope": "none",
   "trial_path": "free tier",
   "route": "none",
   "checkout": {
    "reached": "no",
    "processor": "none",
    "rail_offer": "none"
   },
   "person": null,
   "ours": null,
   "note": "Free, MIT-licensed software with no paid tier (llms.txt: 'No subscription, seat pricing, or paid tier in Memos. Hosting it may still cost money.'). No 402 anywhere; we paid nothing.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "grade": "X5",
   "note": "Nothing to cancel: the product sells nothing recurring and the drive started nothing.",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was made, so nothing was left behind. Documented route: DELETE /api/users/{user}.",
   "account": false,
   "reached": false
  }
 },
 "routes": [
  {
   "route": "keyless",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "network",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 1,
   "browser": null
  },
  {
   "route": "local",
   "offered": "documented",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "none",
   "brings": "nothing",
   "fresh": null,
   "minutes": null,
   "browser": null
  },
  {
   "route": "api_signup",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "network",
    "owner": "product"
   },
   "person": "none",
   "brings": "nothing",
   "fresh": true,
   "minutes": 1,
   "browser": null
  },
  {
   "route": "email_password",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "walled",
   "wall": {
    "type": "challenge",
    "owner": "product"
   },
   "person": "each",
   "brings": "nothing",
   "fresh": true,
   "minutes": 2,
   "browser": null
  },
  {
   "route": "sso_enterprise",
   "offered": "documented",
   "tried": false,
   "not_tried": "policy",
   "result": null,
   "wall": null,
   "person": "each",
   "brings": "person_grant",
   "fresh": null,
   "minutes": null,
   "browser": null
  }
 ],
 "checkout": {
  "reached": "no",
  "rail_offer": "none"
 },
 "docs": {
  "at": "2026-10-23",
  "read": 0,
  "listed": 0,
  "sampled": false,
  "overall": "unreachable",
  "getting_started": "missing",
  "auth": "missing",
  "errors": "missing",
  "examples": "none",
  "freshness": "unknown",
  "newest": null,
  "core_pages": "0 of 8",
  "capabilities": "none"
 },
 "claims": null,
 "pay_options": {
  "checked": "2026-10-23",
  "source": "probe",
  "options": [],
  "agentic": [],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": []
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": false,
  "sdk": false,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST and Connect/gRPC, 93 operations in the OpenAPI (memos, attachments, spaces, views, webhooks, tokens, users)",
  "openapi": "3.0.3, generated by protoc-gen-openapi, in the GitHub repo",
  "mcp": "official, built in, 20 memo-focused tools, PAT auth",
  "llms_txt": "llms.txt and llms-full.txt; the only docs route past the challenge"
 },
 "can_do": [],
 "cannot_do": [
  {
   "what": "Get an account or a token on a hosted Memos",
   "why": "The only vendor-run instance (demo.usememos.com) answers a Cloudflare managed challenge to every path, including /api and /mcp."
  },
  {
   "what": "Call the API or the MCP server",
   "why": "Same challenge; the product is otherwise self-hosted, which this drive could not install."
  },
  {
   "what": "Read the HTML docs or the API reference",
   "why": "usememos.com/docs answers a Cloudflare challenge; only llms.txt and llms-full.txt come through."
  }
 ],
 "blockers": [
  "Cloudflare managed challenge on demo.usememos.com (API, MCP and pages) and on usememos.com/docs"
 ],
 "tips_for_agents": [
  "Memos is self-hosted: point the agent at the user's own instance and a personal access token (memos_pat_...); the vendor's demo is behind a Cloudflare challenge.",
  "Read https://usememos.com/llms-full.txt for the docs; the HTML docs are challenged.",
  "Check the instance version first: 26.10 uses /api/..., 0.30 and 0.31 use /api/v1/..., and old paths return 410 Gone in 26.10."
 ],
 "selfhost": {
  "install": {
   "status": "skipped",
   "note": "no docker in the drive sandbox; Memos is self-hosted software (Docker, Docker Compose, Kubernetes or a native binary, docs/deploy)"
  }
 },
 "summary": "Memos is free, self-hosted note-taking software with a full REST API (93 documented operations) and an MCP server built into every instance. The only instance the vendor runs, demo.usememos.com, puts a Cloudflare managed challenge in front of every path, including /api and /mcp, so our agent could not sign up, get a token or make a call; the HTML docs are challenged too, and only llms.txt and llms-full.txt come through.",
 "wall": "Cloudflare challenge on the demo and its API",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "terms": null,
 "plain": {
  "summary": "Memos is a free, self-hosted note-taking tool with an API and a built-in MCP server. An agent could only read the docs; the only instance the vendor runs online put up a security check on every page, so the agent could not create an account or try the product itself.",
  "can_do": [
   "Read the plain-text documentation for Memos."
  ],
  "cannot_do": [
   {
    "what": "Create an account or get an access token on the vendor's demo site",
    "why": "A security check blocks every page there, including sign-up."
   },
   {
    "what": "Create, edit, search or share notes through the API or chat tool",
    "why": "No account could be made, so none of these could be tried."
   },
   {
    "what": "Read the full HTML documentation site",
    "why": "The same security check blocks those pages too."
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "capability": "Write a memo in Markdown",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/memos",
    "mcp": "memo_create_memo",
    "cli": null,
    "ui": "global composer"
   },
   "check": "GET /api/v1/memos/{id} returns the created memo with the posted content",
   "capability_id": "cap_yvyjytn1",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/memos; https://usememos.com/docs/api/latest",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-02",
   "capability": "Edit a memo's content",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /api/v1/memos/{id}",
    "mcp": "memo_update_memo",
    "cli": null,
    "ui": "memo editor, inline edit"
   },
   "check": "GET /api/v1/memos/{id} shows the updated content and updated_ts",
   "capability_id": "cap_5wfd6v1f",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/memos",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-03",
   "capability": "Delete or archive a memo",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "DELETE /api/v1/memos/{id}",
    "mcp": "memo_delete_memo",
    "cli": null,
    "ui": "memo menu, Archived page"
   },
   "check": "GET /api/v1/memos/{id} returns 404, or memo appears under Archived with row_status ARCHIVED",
   "capability_id": "cap_bmyjwyc1",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/search-archive; https://usememos.com/docs/integrations/mcp",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-04",
   "capability": "Set a memo's visibility (private, protected, public, space)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /api/v1/memos/{id}?updateMask=visibility",
    "mcp": "memo_update_memo",
    "cli": null,
    "ui": "editor audience menu"
   },
   "check": "GET /api/v1/memos/{id} shows visibility field matching the chosen level",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://usememos.com/docs/usage/sharing",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-05",
   "capability": "Browse memos by Calendar, Map or Timeline",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1/memos (filter by created_ts)",
    "mcp": "memo_list_memos",
    "cli": null,
    "ui": "Calendar, Map, Timeline"
   },
   "check": "Selecting a day/marker shows only memos with matching created_ts or location",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://usememos.com/docs/usage/memos#browsing-your-memos",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-06",
   "capability": "Search memos by content or metadata",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1/memos?filter=...",
    "mcp": "memo_list_memos",
    "cli": null,
    "ui": "Quick Find, search box"
   },
   "check": "Search results list only memos whose content matches the query",
   "capability_id": "cap_j1x1a2f4",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/search-archive",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-07",
   "capability": "Tag a memo with inline hashtags",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/memos (content contains #tag)",
    "mcp": "memo_create_memo",
    "cli": null,
    "ui": "editor, # autocomplete"
   },
   "check": "GET /api/v1/memos/{id} lists the tag in its computed tags, and filtering by tag returns the memo",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://usememos.com/docs/usage/tags",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-08",
   "capability": "Pin a memo",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /api/v1/memos/{id}?updateMask=pinned",
    "mcp": "memo_update_memo",
    "cli": null,
    "ui": "memo menu"
   },
   "check": "GET /api/v1/memos/{id} shows pinned: true and it surfaces with the pinned marker in the feed",
   "capability_id": "cap_pcpacc2v",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/memos#core-actions",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-09",
   "capability": "Attach a file to a memo",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/attachments",
    "mcp": "attachment_create_attachment",
    "cli": null,
    "ui": "editor upload, drag-and-drop, paste"
   },
   "check": "GET /api/v1/memos/{id}/attachments lists the uploaded file",
   "capability_id": "cap_facpbh70",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/attachments",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-10",
   "capability": "Create a saved View (reusable filter)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/users/{id}/views",
    "mcp": "user_list_memo_views",
    "cli": null,
    "ui": "/views page"
   },
   "check": "GET /api/v1/users/{id}/views returns the saved filter, and selecting it filters the memo list accordingly",
   "capability_id": "cap_hkwr9742",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/views",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-11",
   "capability": "Create a public share link for a memo",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/memos/{id}/share (per API reference)",
    "mcp": null,
    "cli": null,
    "ui": "memo detail Share panel"
   },
   "check": "The share URL resolves the memo's content without sign-in until revoked",
   "capability_id": "cap_s5xdd6q5",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/sharing",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-12",
   "capability": "React to a memo with an emoji",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/memos/{id}/reactions",
    "mcp": "memo_upsert_memo_reaction",
    "cli": null,
    "ui": "reaction selector in memo header"
   },
   "check": "GET /api/v1/memos/{id}/reactions lists the added reaction for that user",
   "capability_id": "cap_e82b8y63",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/reactions-comments",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-13",
   "capability": "Comment on a memo",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/memos/{id}/comments",
    "mcp": "memo_create_memo_comment",
    "cli": null,
    "ui": "memo detail page"
   },
   "check": "GET /api/v1/memos/{id}/comments (or memo_list_memo_comments) returns the new comment",
   "capability_id": "cap_x9xcfs87",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/reactions-comments",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-14",
   "capability": "Mention a user in a memo or comment",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "editor @mention"
   },
   "check": "The mentioned user receives an Inbox notification linking to the memo",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://usememos.com/docs/usage/reactions-comments#mentions",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-15",
   "capability": "Link related memos with a Relation",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /api/v1/memos/{id} (relations)",
    "mcp": "memo_set_memo_relations",
    "cli": null,
    "ui": "editor Link memo"
   },
   "check": "GET /api/v1/memos/{id}/relations (memo_list_memo_relations) shows the outgoing/incoming link",
   "capability_id": "cap_za211vgw",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/memos#linking-memos-with-relations",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-16",
   "capability": "Add a location to a memo",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "editor Add location, Map view"
   },
   "check": "The memo appears on Map at the saved coordinates and has_location is true",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://usememos.com/docs/usage/memos#map",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-17",
   "capability": "Export memos and attachments to a ZIP",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Export & Import"
   },
   "check": "A memos-export-<username>-<timestamp>.zip downloads containing Markdown and JSON for each authored memo",
   "capability_id": "cap_8zwmj5wn",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/export-import",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-18",
   "capability": "Import a Memos export into an account",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Export & Import"
   },
   "check": "The import report shows Created/Updated counts and the memos appear in the account's timeline",
   "capability_id": "cap_a8damn1w",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/export-import",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-19",
   "capability": "Create a Space (shared workspace)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/spaces",
    "mcp": null,
    "cli": null,
    "ui": "Space switcher → Create Space"
   },
   "check": "GET /api/v1/spaces/{id} returns the new Space with the creator as admin",
   "capability_id": "cap_vk1kvzkm",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/spaces",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-20",
   "capability": "Invite a member to a Space",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Spaces members"
   },
   "check": "The invited user's Inbox shows a pending Space invitation they can Accept or Decline",
   "capability_id": "cap_3w8sjh12",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/spaces#create-or-join-a-space",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-21",
   "capability": "Register a webhook for memo events",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Webhooks"
   },
   "check": "Creating a memo triggers a signed POST to the webhook URL with activityType memo.created",
   "capability_id": "cap_977hxacb",
   "unmapped": null,
   "source": "https://usememos.com/docs/integrations/webhooks",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-22",
   "capability": "Transcribe an audio attachment with AI",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/.../transcribe (AI Service Transcribe)",
    "mcp": null,
    "cli": null,
    "ui": "memo editor, audio attachment"
   },
   "check": "The transcript text is inserted into the draft alongside the original audio attachment",
   "capability_id": null,
   "unmapped": "own_feature",
   "source": "https://usememos.com/docs/usage/attachments#transcribing-audio; https://usememos.com/docs/api/latest/aiservice/Transcribe",
   "result": "blocked",
   "via": "api"
  },
  {
   "id": "cap-23",
   "capability": "Manage Space member roles",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Settings → Spaces members"
   },
   "check": "GET the Space membership list shows the member's role changed to Admin or User",
   "capability_id": "cap_bs3hvrpm",
   "unmapped": null,
   "source": "https://usememos.com/docs/usage/spaces#roles-and-authorship",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-24",
   "capability": "Configure instance settings (storage, auth, SMTP, AI)",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "PATCH /api/v1/workspace/setting (Instance Service UpdateInstanceSetting)",
    "mcp": null,
    "cli": null,
    "ui": "Admin → Instance Settings"
   },
   "check": "GET Instance Setting (BatchGetInstanceSettings) reflects the updated value",
   "capability_id": "cap_q235vpxt",
   "unmapped": null,
   "source": "https://usememos.com/docs/admin/instance-settings",
   "result": "blocked",
   "via": null
  },
  {
   "id": "cap-25",
   "capability": "Configure an SSO identity provider",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /api/v1/identityProviders (Identity Provider Service)",
    "mcp": null,
    "cli": null,
    "ui": "Admin → Instance Settings, linked identities"
   },
   "check": "GET /api/v1/identityProviders lists the configured provider and users can sign in through it",
   "capability_id": "cap_pz4pecfg",
   "unmapped": null,
   "source": "https://usememos.com/docs/api/latest/identityproviderservice/CreateIdentityProvider; https://usememos.com/docs/usage/linked-identities",
   "result": "blocked",
   "via": null
  }
 ],
 "stale": false,
 "unreachable_since": null,
 "not_driven_since": null,
 "icon": "/logos/usememos.png",
 "agent_kinds": {
  "browser": {
   "who": "An assistant in a browser",
   "passed": [],
   "stop": "signup",
   "why": "Cloudflare's bot check turns away even a normal browser",
   "tone": "wall",
   "text": "Signing up needs a person: Cloudflare's bot check turns away even a normal browser."
  },
  "direct": {
   "who": "An agent talking to it directly",
   "passed": [],
   "stop": "signup",
   "why": "Cloudflare's bot check turns it away",
   "tone": "wall",
   "text": "Signing up needs a person: Cloudflare's bot check turns it away."
  }
 },
 "stop_evidence": {
  "at": "signup",
  "date": "2026-10-23",
  "line": "The only instance the vendor runs, demo.usememos.com, sits behind a Cloudflare managed challenge on every path: the API sign-up (POST /api/v1/users) got 403 cf-mitigated: challenge, and the sign-up page showed an interstitial in our agent's browser that never cleared."
 },
 "stop_shot": null,
 "attempts_count": 57,
 "detail": {
  "public": false,
  "in": [
   "report",
   "api"
  ],
  "since": "2026-10-17"
 },
 "what_it_does": "Memos is a free, self-hosted note-taking tool with an API and a built-in MCP server.",
 "rules_version": "rules-2026-10-20-24",
 "rules_url": "https://agentdrives.com/method/changelog#rules-2026-10-20-24",
 "category_median": null,
 "probe": null,
 "probe_history": [],
 "agent_reports": null,
 "verdict": null,
 "changes": {
  "source": "store",
  "drives": [
   {
    "run": "20261023T050151Z",
    "date": "2026-10-23",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 4,
    "listed": true
   },
   {
    "run": "20261023T052827Z",
    "date": "2026-10-23",
    "level": 1,
    "stop": "signup",
    "entry": "closed",
    "driver": 4,
    "listed": true
   }
  ],
  "events": [],
  "feed": "https://agentdrives.com/api/tools/usememos/changes.json"
 },
 "agreement": {
  "drives": 2,
  "agree": 2
 },
 "method_release": "2026-Q4.9",
 "rank": null,
 "rank_of": 3,
 "rank_change": null,
 "rank_since": null,
 "capability_matrix": [
  {
   "id": "cap-01",
   "name": "Write a memo in Markdown",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-02",
   "name": "Edit a memo's content",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-03",
   "name": "Delete or archive a memo",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-04",
   "name": "Set a memo's visibility (private, protected, public, space)",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-05",
   "name": "Browse memos by Calendar, Map or Timeline",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-06",
   "name": "Search memos by content or metadata",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-07",
   "name": "Tag a memo with inline hashtags",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-08",
   "name": "Pin a memo",
   "core": true,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-09",
   "name": "Attach a file to a memo",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-10",
   "name": "Create a saved View (reusable filter)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-11",
   "name": "Create a public share link for a memo",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-12",
   "name": "React to a memo with an emoji",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-13",
   "name": "Comment on a memo",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-14",
   "name": "Mention a user in a memo or comment",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-15",
   "name": "Link related memos with a Relation",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "untried",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-16",
   "name": "Add a location to a memo",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-17",
   "name": "Export memos and attachments to a ZIP",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-18",
   "name": "Import a Memos export into an account",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-19",
   "name": "Create a Space (shared workspace)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-20",
   "name": "Invite a member to a Space",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-21",
   "name": "Register a webhook for memo events",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-22",
   "name": "Transcribe an audio attachment with AI",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "blocked",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-23",
   "name": "Manage Space member roles",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "none",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-24",
   "name": "Configure instance settings (storage, auth, SMTP, AI)",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  },
  {
   "id": "cap-25",
   "name": "Configure an SSO identity provider",
   "core": false,
   "result": "blocked",
   "surfaces": {
    "api": "untried",
    "mcp": "none",
    "cli": "none",
    "ui": "untried"
   }
  }
 ],
 "category_place": {
  "category": "workspace",
  "products": 5,
  "higher": 3,
  "same_level": 1,
  "as_of": "2026-10-23",
  "stop": "signup",
  "rivals_by": "stop",
  "rivals": [
   "notion"
  ]
 },
 "page": "https://agentdrives.com/tools/usememos?via=api"
}