{"openapi":"3.1.0","info":{"title":"Cortex MaaS","description":"Memory as a Service for approved agents.","version":"0.2.0"},"paths":{"/setup":{"get":{"tags":["discovery"],"summary":"Human-readable MCP client setup guide","description":"Public, unauthenticated setup instructions for connecting an MCP client.\n\nServed BY THE SERVICE rather than as a static file in the nginx html root:\nevery other public ``/memory/*`` path is a reverse proxy to this app, so a\nstatic file would be the one surface needing a root-owned copy step to\npublish — and therefore the one that could silently drift from the service it\ndocuments. As a route it ships with the image and deploys with the code.\n\nUnauthenticated on purpose: a reader needs it BEFORE they have a credential.\nIt names the components a reader must configure by hand, and nothing else —\nno tenant, no principal, no host literal, no internal address, no dependency\ngraph.\n\nServed only where an operator has enabled it; otherwise 404.","operationId":"setup_page_setup_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"404":{"description":"The setup page is not enabled on this deployment."}}}},"/help":{"get":{"tags":["discovery"],"summary":"What Cortex Memory MCP is (not a login page)","operationId":"help_page_help_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/capabilities":{"get":{"tags":["discovery"],"summary":"Cortex Memory capabilities and OpenAPI examples","operationId":"capabilities_page_capabilities_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/setup/full":{"get":{"tags":["discovery"],"summary":"Long local-bridge setup page (flag-gated)","operationId":"setup_page_full_setup_full_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/":{"get":{"tags":["discovery"],"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Root  Get"}}}}}}},"/version":{"get":{"tags":["discovery"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Version Version Get"}}}}}}},"/health/live":{"get":{"tags":["health"],"summary":"Health","operationId":"health_health_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Live Get"}}}}}}},"/health":{"get":{"tags":["health"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/status":{"get":{"tags":["health"],"summary":"Public Status","description":"Coarse public availability without exposing dependency names or topology.","operationId":"public_status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/ready":{"get":{"tags":["health"],"summary":"Health Ready","operationId":"health_ready_health_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/metrics":{"get":{"tags":["observability"],"summary":"Metrics","operationId":"metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource/{resource_path}":{"get":{"tags":["discovery"],"summary":"Protected Resource Metadata For Path","description":"RFC 9728 §3 path-inserted discovery for THIS resource only.\n\nInputs: the path segment a client appends after the well-known segment.\nOutput: the identical PRM document when the suffix equals this resource\nURL's own path component; otherwise a 404.  Raises: nothing.\n\nDeliberately NOT an open wildcard: advertising the same document for every\npath would tell a client that any URL on this origin is this resource.","operationId":"protected_resource_metadata_for_path__well_known_oauth_protected_resource__resource_path__get","parameters":[{"name":"resource_path","in":"path","required":true,"schema":{"type":"string","title":"Resource Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"tags":["discovery"],"summary":"Protected Resource Metadata","description":"Publish standards-compatible access discovery for the public MaaS resource URL.","operationId":"protected_resource_metadata__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp":{"post":{"tags":["memory"],"summary":"Use Cortex MaaS","description":"Authenticated agent-memory protocol endpoint with server-owned identity resolution.","operationId":"mcp_mcp_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"MCP-Protocol-Version","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcp-Protocol-Version"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuthBearer":[]}]}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"OAuthBearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"RS256 access token issued for the Cortex MaaS URL."}}},"tags":[{"name":"discovery","description":"Service and access discovery."},{"name":"health","description":"Liveness and dependency-aware readiness."},{"name":"memory","description":"Authenticated agent-memory protocol boundary."},{"name":"observability","description":"Prometheus-compatible service metrics."}]}