{"client":"Hermes Agent","server_name":"XMemo","surface":"hermes_native_plugin_plus_mcp","recommended_mode":"hermes_plugin_preferred","mcp_url":"https://xmemo.dev/mcp","discovery_url":"https://xmemo.dev/.well-known/agent-discovery.json","plugin":{"name":"hermes-xmemo","repository_url":"https://github.com/yonro/hermes-xmemo-plugin","pypi_url":"https://pypi.org/project/hermes-xmemo/","role":"native Hermes memory provider for pre-turn recall, semantic search, memory mirroring, working state, and session snapshots","recommended":true,"install_commands":["pip install hermes-xmemo","hermes-xmemo install","hermes memory setup xmemo"],"manual_install":["clone https://github.com/yonro/hermes-xmemo-plugin","bash install.sh","hermes memory setup xmemo"],"config_files":{"provider_config":"$HERMES_HOME/xmemo.json","secret_env":"$HERMES_HOME/.env","plugin_dir":"$HERMES_HOME/plugins/xmemo"}},"automation_hint":{"if_user_provides_xmemo_dev":"read /.well-known/agent-discovery.json, then prefer the Hermes XMemo provider plugin when the active client is Hermes Agent","if_running_hermes":"install hermes-xmemo and run hermes memory setup xmemo before using generic MCP fallback","if_mcp_only":"use the hosted MCP endpoint as a portable fallback, but explain that the native plugin gives Hermes pre-turn recall and memory mirroring","avoid_extra_user_burden":true},"requires_env":{"XMEMO_KEY":"Set this to the XMemo key on the client machine; do not paste the token into config files."},"optional_env":{"XMEMO_URL":"Optional XMemo base URL override. Defaults to https://xmemo.dev.","XMEMO_AGENT_INSTANCE_ID":"Optional non-secret stable local installation ID. The @xmemo/client setup helper auto-generates and persists this value for supported clients; manual snippets must set one unique value per local client/profile outside git.","XMEMO_BUCKET":"Optional default memory bucket for Hermes provider writes.","XMEMO_SCOPE":"Optional default memory scope for Hermes profile isolation."},"auth":{"preferred":"hermes_plugin_env_secret","token_env_var":"XMEMO_KEY","token_in_config":false,"manual_fallback":{"type":"bearer","header":"Authorization","header_value_template":"Bearer <XMEMO_KEY>","token_env_var":"XMEMO_KEY","token_in_config":false}},"mcp_fallback":{"recommended_when":"Hermes plugin cannot be installed or a separate MCP-only tool surface is required","mcpServers":{"XMemo":{"url":"https://xmemo.dev/mcp","transport":"streamable-http","headers":{"Authorization":"Bearer ${XMEMO_KEY}","X-Memory-OS-Agent-ID":"hermes","X-Memory-OS-Agent-Instance-ID":"${XMEMO_AGENT_INSTANCE_ID}"}}}},"mcpServers":{"XMemo":{"url":"https://xmemo.dev/mcp","transport":"streamable-http","headers":{"Authorization":"Bearer ${XMEMO_KEY}","X-Memory-OS-Agent-ID":"hermes","X-Memory-OS-Agent-Instance-ID":"${XMEMO_AGENT_INSTANCE_ID}"}}},"agent_identity":{"agent_id":"hermes","agent_id_header":"X-Memory-OS-Agent-ID","agent_instance_id_header":"X-Memory-OS-Agent-Instance-ID","agent_instance_env_var":"XMEMO_AGENT_INSTANCE_ID","identity_headers_supported":true,"agent_instance_policy":"Generate one stable random value per local agent install/profile; Memory OS hashes it server-side and never treats it as a secret.","agent_instance_generation":{"automatic_cli_command":null,"manual_env_var":"XMEMO_AGENT_INSTANCE_ID","manual_value_format":"xmemo-hermes-<uuid>","persist_outside_git":true,"reuse_for_same_local_install":true},"note":"Hermes XMemo plugin uses agent_id=hermes by default and should persist one stable non-secret agent_instance_id per Hermes profile/install."},"plugin_mcp_relationship":{"plugin_layer":"native_memory_provider","mcp_layer":"portable_tool_fallback","best_user_path":"install hermes-xmemo, configure XMEMO_KEY in the Hermes environment, then keep MCP fallback only for non-Hermes clients"},"security":{"token_in_discovery":false,"token_in_url":false,"token_in_plugin_metadata":false,"plugin_secret_location":"$HERMES_HOME/.env","mcp_fallback_uses_env_secret":true}}