{
  "schemaVersion": 1,
  "convention": "STEM public capability manifest; a documented product format, not a universal discovery standard.",
  "name": "STEM by Awase",
  "description": "Persistent memory across compatible AI assistants. Save selected context in STEM, then recall it from another connected assistant using the same account.",
  "provider": {
    "name": "Awase LLC",
    "url": "https://awase.dev"
  },
  "mcp": {
    "endpoint": "https://awase.dev/stem",
    "transport": "streamable-http",
    "protocolVersion": "2025-06-18",
    "serverInfo": {
      "name": "awase-stem",
      "version": "1.0.0"
    },
    "authentication": {
      "type": "oauth2",
      "flow": "authorization_code",
      "pkce": "S256",
      "dynamicClientRegistration": true,
      "resource": "https://awase.dev/stem",
      "scope": "stem",
      "authorizationServerMetadata": "https://awase.dev/.well-known/oauth-authorization-server",
      "protectedResourceMetadata": "https://awase.dev/.well-known/oauth-protected-resource/stem"
    },
    "tools": "https://awase.dev/agents/tools.json"
  },
  "capabilities": {
    "saveSelectedContext": true,
    "recallSavedContext": true,
    "linkSavedMemories": true,
    "memoryGraph": true,
    "crossAssistantRecall": "Supported assistants must authorize the same STEM account.",
    "automaticMemory": "Optional, best effort, per OAuth connection; host approval still applies. Check tools/list and memory_status.",
    "export": "Authenticated web export of memories and links as JSON; included on every plan.",
    "pastConversationImport": false,
    "transcriptSync": false
  },
  "boundaries": [
    "Connecting does not import old chats or expose conversations in another assistant.",
    "Source labels describe a memory; they are not authorization or live provider connection status.",
    "Recall is a bounded ranked search, not a complete export or a guarantee that every result is relevant.",
    "Public documentation contains no private account memories. Memory tools require authorized access.",
    "A setup guide or directory listing is not proof that an individual connection succeeded."
  ],
  "links": {
    "agents": "https://awase.dev/agents",
    "quickstart": "https://awase.dev/docs/quickstart",
    "integrations": "https://awase.dev/agents#integrations",
    "contextTransfer": "https://awase.dev/docs/context-transfer",
    "pricing": "https://awase.dev/pricing",
    "privacy": "https://awase.dev/privacy",
    "terms": "https://awase.dev/terms",
    "support": "mailto:support@awase.dev",
    "pricingFacts": "https://awase.dev/agents/pricing.json",
    "trust": "https://awase.dev/trust",
    "developers": "https://awase.dev/developers",
    "limits": "https://awase.dev/docs/limits",
    "compatibilityEvidence": "https://awase.dev/docs/compatibility"
  },
  "reviewedOn": "2026-10-25",
  "productId": "https://awase.dev/stem#software",
  "publisherId": "https://awase.dev/#organization",
  "exportFormats": {
    "web": {
      "format": "JSON",
      "filename": "stem-memories.json",
      "contents": "Saved memory nodes, links, counts and export timestamp."
    },
    "api": {
      "format": "JSON",
      "endpoint": "https://awase.dev/stem/export",
      "authentication": "Issued bearer access token; account-scoped."
    },
    "ios": {
      "format": "Markdown",
      "availability": "Compatible iOS builds render the JSON memory export as a Markdown document for sharing; installed-version availability can differ."
    },
    "android": {
      "format": "Check the installed client",
      "availability": "A Markdown label alone does not establish the downloaded file format. Use the web JSON export when a machine-readable copy is required."
    },
    "includesUploadedMedia": false,
    "bulkConversationImport": false,
    "oneClickRestore": false
  },
  "integrations": [
    {
      "id": "chatgpt",
      "name": "ChatGPT",
      "path": "https://awase.dev/integrations/chatgpt",
      "status": "tested-workflow",
      "summary": "OAuth connection, an authorized save and recall across conversations have been tested.",
      "documentationReviewedOn": "2026-10-25",
      "evidence": {
        "verifiedOn": "2026-10-24",
        "surface": "Published ChatGPT web connector",
        "scope": "OAuth, current memory permission, an explicitly approved synthetic save, same-chat recall, fresh-chat recall and cross-client recall.",
        "exclusions": "No claim about mobile clients, refresh rotation or automatic saving on every turn."
      }
    },
    {
      "id": "claude",
      "name": "Claude",
      "path": "https://awase.dev/integrations/claude",
      "status": "tested-workflow",
      "summary": "A Claude remote connector has passed authorized save and cross-assistant recall checks.",
      "documentationReviewedOn": "2026-10-25",
      "evidence": {
        "verifiedOn": "2026-10-25",
        "surface": "Existing Claude remote connector",
        "scope": "Current memory permission, an explicitly approved synthetic save, same-chat recall, fresh-chat recall and cross-client recall.",
        "exclusions": "One existing host connection was exercised. Claude Code, mobile clients and every historical registration were not separately tested."
      }
    },
    {
      "id": "gemini",
      "name": "Gemini",
      "path": "https://awase.dev/integrations/gemini",
      "status": "tested-workflow",
      "summary": "A Gemini custom app has passed authorized save and recall checks on an eligible account.",
      "documentationReviewedOn": "2026-10-25",
      "evidence": {
        "verifiedOn": "2026-10-25",
        "surface": "Existing Gemini custom app using Flash",
        "scope": "Current memory permission, an explicitly approved synthetic save, same-chat recall, fresh-chat recall and cross-client recall.",
        "exclusions": "Other model choices did not all complete the workflow. Per-write host approval may apply. Mobile behavior and refresh rotation were not verified."
      }
    },
    {
      "id": "cursor",
      "name": "Cursor",
      "path": "https://awase.dev/integrations/cursor",
      "status": "documented-setup",
      "summary": "Remote HTTP and OAuth setup follows Cursor documentation; verify your connection with a tool call.",
      "documentationReviewedOn": "2026-10-25",
      "evidence": {
        "verifiedOn": null,
        "surface": "Cursor",
        "scope": "Setup documentation reviewed; no completed STEM host workflow is asserted.",
        "exclusions": "Remote HTTP and OAuth setup follows Cursor documentation; verify your connection with a tool call."
      }
    },
    {
      "id": "muse",
      "name": "Muse / Muse Code",
      "path": "https://awase.dev/integrations/muse",
      "status": "documented-setup",
      "summary": "Muse consumer MCP compatibility is unverified. Muse Code has a separate documented setup.",
      "documentationReviewedOn": "2026-10-25",
      "evidence": {
        "verifiedOn": null,
        "surface": "Muse / Muse Code",
        "scope": "Setup documentation reviewed; no completed STEM host workflow is asserted.",
        "exclusions": "Muse consumer MCP compatibility is unverified. Muse Code has a separate documented setup."
      }
    },
    {
      "id": "grok",
      "name": "Grok / Grok Bot",
      "path": "https://awase.dev/integrations/grok",
      "status": "documented-setup",
      "summary": "Grok chat documents custom MCP connectors. Grok Bot compatibility must be checked separately.",
      "documentationReviewedOn": "2026-10-25",
      "evidence": {
        "verifiedOn": null,
        "surface": "Grok / Grok Bot",
        "scope": "Setup documentation reviewed; no completed STEM host workflow is asserted.",
        "exclusions": "Grok chat documents custom MCP connectors. Grok Bot compatibility must be checked separately."
      }
    },
    {
      "id": "mcp",
      "name": "Other MCP clients",
      "path": "https://awase.dev/integrations/mcp",
      "status": "documented-setup",
      "summary": "Use a client with remote Streamable HTTP and OAuth with dynamic client registration.",
      "documentationReviewedOn": "2026-10-25",
      "evidence": {
        "verifiedOn": null,
        "surface": "Other MCP clients",
        "scope": "Setup documentation reviewed; no completed STEM host workflow is asserted.",
        "exclusions": "Use a client with remote Streamable HTTP and OAuth with dynamic client registration."
      }
    }
  ]
}
