{"schema_version":"1.0","protocol":"memory-os-agent-discovery-v1","service":"memory-os","name":"XMemo","description":"User-owned memory discovery for AI agents, MCP clients, CLIs, IDEs, and conversations.","agent_discovery_ready":true,"urls":{"api_base":"https://xmemo.dev","root_discovery":"https://xmemo.dev/.well-known/memory-os.json","agent_discovery":"https://xmemo.dev/.well-known/agent-discovery.json","onboarding_status":"https://xmemo.dev/v1/onboarding/status","mcp":"https://xmemo.dev/mcp","docs":"https://xmemo.dev/product/docs"},"api":{"mcp":{"url":"https://xmemo.dev/mcp","transport":"streamable-http","auth":{"type":"bearer","header":"Authorization","env":"XMEMO_KEY","agent_id_header":"X-Memory-OS-Agent-ID","agent_id_env":"XMEMO_AGENT_ID","agent_instance_id_header":"X-Memory-OS-Agent-Instance-ID","agent_instance_id_env":"XMEMO_AGENT_INSTANCE_ID"}}},"auth":{"token_in_discovery":false,"methods":[{"surface":"mcp","type":"bearer","header":"Authorization","env":"XMEMO_KEY"},{"surface":"chatgpt","type":"oauth2_authorization_code_pkce","authorization_endpoint":"https://xmemo.dev/oauth/chatgpt/authorize","token_endpoint":"https://xmemo.dev/oauth/chatgpt/token","metadata_endpoint":"https://xmemo.dev/.well-known/oauth-authorization-server","protected_resource_metadata_endpoint":"https://xmemo.dev/.well-known/oauth-protected-resource","resource":"https://xmemo.dev/mcp","default_scope":"memory:read memory:write"},{"surface":"vscode","type":"oauth2_authorization_code_pkce","metadata_endpoint":"https://xmemo.dev/.well-known/oauth-authorization-server","protected_resource_metadata_endpoint":"https://xmemo.dev/.well-known/oauth-protected-resource","resource":"https://xmemo.dev/mcp","client_metadata_url":"https://vscode.dev/oauth/client-metadata.json","default_scope":"memory:read memory:write"},{"surface":"mcp-agent-identity","type":"non_secret_attribution","header":"X-Memory-OS-Agent-ID","env":"XMEMO_AGENT_ID"},{"surface":"mcp-agent-instance-identity","type":"non_secret_stable_installation_attribution","header":"X-Memory-OS-Agent-Instance-ID","env":"XMEMO_AGENT_INSTANCE_ID"}]},"security":{"token_in_discovery":false,"admin_api_exposed":false,"server_management":false,"client_onboarding_only":true,"no_remote_code_execution":true,"statements":["Discovery is a read-only capability document.","Discovery never returns user tokens or user-specific configuration.","Discovery does not include executable installation scripts.","Tokens must be supplied through environment variables or a system secret store.","Tokens must not appear in URLs, logs, git repositories, or plaintext config templates.","Agent instance IDs are non-secret local installation IDs; XMemo hashes them server-side and never uses them for authentication."]},"clients":[{"id":"codex","label":"OpenAI Codex CLI","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/codex","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"chatgpt","label":"ChatGPT / OpenAI Apps SDK","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/chatgpt","requires_env":null,"docs_url":"https://xmemo.dev/product/docs"},{"id":"gemini-cli","label":"Google Gemini CLI","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/gemini-cli","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"copilot-cli","label":"GitHub Copilot CLI","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/copilot-cli","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"claude-code","label":"Anthropic Claude Code","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/claude-code","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"cursor","label":"Cursor","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/cursor","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"claude-desktop","label":"Claude Desktop","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/claude-desktop","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"cline","label":"Cline (VS Code extension)","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/cline","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"continue","label":"Continue.dev","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/continue","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"windsurf","label":"Windsurf (Codeium IDE)","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/windsurf","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"},{"id":"vscode","label":"Visual Studio Code / GitHub Copilot","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/vscode","requires_env":null,"docs_url":"https://xmemo.dev/product/docs"},{"id":"generic","label":"Generic / other MCP client","status":"stable","supports_mcp":true,"platforms":["windows","macos","linux"],"mcp_config_url":"https://xmemo.dev/v1/mcp/config/generic","requires_env":"XMEMO_KEY","docs_url":"https://xmemo.dev/product/docs"}],"platform_support":{"explicit":["windows","macos","linux"],"best_effort":["raspberry-pi","termux"]},"supported_clients":["codex","chatgpt","gemini-cli","copilot-cli","claude-code","cursor","claude-desktop","cline","continue","windsurf","vscode","generic"],"meta":{"link_rel":"agent-discovery","html_head":{"link":"https://xmemo.dev/.well-known/agent-discovery.json"}},"agent_boundary":{"role":"client_onboarding_only","default_authority":"client","allowed_actions":["discover","read_onboarding_status","download_profile","configure_local_mcp_client","smoke_test"],"client_allowed":["discover_service","read_onboarding_status","download_profile","configure_local_mcp","run_smoke_test"],"forbidden_actions":["db_migrate","schema_modify","schema_alter","token_generate","token_rotate","token_revoke","service_restart","server_env_edit","secret_exfiltration"],"requires_admin_for":["token_provisioning","database_migration","schema_upgrade","service_restart","token_registry_changes"],"admin_required":["issue_token","rotate_token","revoke_token","run_database_migration","restart_service","change_schema","change_token_registry"],"on_missing_token":"stop_and_request_admin_secret","on_server_not_ready":"stop_and_report_admin_action_required","secret_handling":"Never put token values in URLs, profiles, logs, or source control; use environment variables or OS secret stores."}}