{"openapi":"3.1.0","info":{"title":"Tasia MCP Hub","description":"Central memory & secrets API for all Tasia instances. Search, add, and manage memories and encrypted secrets.","version":"1.0.0"},"servers":[{"url":"https://memory-tasia.fresh-projects.top"}],"paths":{"/api/memories":{"get":{"summary":"List memories","description":"List all memories with optional scope and type filters","operationId":"listMemories","parameters":[{"name":"scope","in":"query","schema":{"type":"string","enum":["user","project","all-projects"]}},{"name":"type","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Memory list"}}},"post":{"summary":"Add a memory","description":"Add a new memory to the central hub","operationId":"addMemory","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"type":"string","description":"Memory text content"},"tags":{"type":"array","items":{"type":"string"}},"type":{"type":"string"},"scope":{"type":"string","enum":["user","project"]}}}}}},"responses":{"200":{"description":"Memory created"}}}},"/api/memories/search":{"get":{"summary":"Search memories","description":"Search memories by text query across all Tasias","operationId":"searchMemories","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Search query"},{"name":"scope","in":"query","schema":{"type":"string","enum":["user","project","all-projects"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"Search results"}}}},"/api/memories/{id}":{"get":{"summary":"Get memory by ID","operationId":"getMemory","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Memory details"}}},"put":{"summary":"Update memory","operationId":"updateMemory","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string"},"type":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Memory updated"}}},"delete":{"summary":"Delete memory","operationId":"deleteMemory","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Memory deleted"}}}},"/api/secrets":{"get":{"summary":"List secrets","description":"List all secret names and purposes (not values)","operationId":"listSecrets","responses":{"200":{"description":"Secret list"}}},"post":{"summary":"Create/update secret","operationId":"upsertSecret","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","value"],"properties":{"name":{"type":"string"},"value":{"type":"string"},"scope":{"type":"string"},"purpose":{"type":"string"}}}}}},"responses":{"200":{"description":"Secret saved"}}}},"/api/secrets/{name}":{"get":{"summary":"Get secret value","operationId":"getSecret","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Decrypted secret value"}}},"delete":{"summary":"Delete secret","operationId":"deleteSecret","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Secret deleted"}}}},"/api/stats":{"get":{"summary":"Memory statistics","operationId":"getStats","responses":{"200":{"description":"Memory stats"}}}},"/api/tags":{"get":{"summary":"List container tags","operationId":"listTags","responses":{"200":{"description":"Container tags"}}}},"/api/openshapes/status":{"get":{"summary":"Openshapes connection status","description":"Check connection to Openshapes, see agents, subjects, memory counts","operationId":"openshapesStatus","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Openshapes status"}}}},"/api/openshapes/pull":{"post":{"summary":"Pull memories from Openshapes","description":"Sync RP memories from openshapes into the hub","operationId":"openshapesPull","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subjectId":{"type":"integer","description":"Filter by subject ID"},"since":{"type":"string","description":"Only after this date"},"limit":{"type":"integer","default":100}}}}}},"responses":{"200":{"description":"Sync result"}}}},"/api/openshapes/push":{"post":{"summary":"Push memories to Openshapes","description":"Share hub memories with the openshapes RP system","operationId":"openshapesPush","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"Filter by memory type"},"dateFrom":{"type":"string","description":"Start date YYYY-MM-DD"},"dateTo":{"type":"string","description":"End date YYYY-MM-DD"},"limit":{"type":"integer","default":50},"scope":{"type":"string","description":"Filter by scope"}}}}}},"responses":{"200":{"description":"Push result"}}}},"/api/openshapes/memories":{"get":{"summary":"List pushed memories in Openshapes","operationId":"openshapesListPushed","security":[{"bearerAuth":[]}],"parameters":[{"name":"type","in":"query","schema":{"type":"string"}},{"name":"query","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Pushed memories list"}}}},"/api/openshapes/agents":{"get":{"summary":"Openshapes agents","description":"All agent configs from openshapes","operationId":"openshapesAgents","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Agent configs"}}}},"/api/openshapes/knowledge":{"get":{"summary":"Search Openshapes knowledge","description":"Search global knowledge (family, rules, identity, RP context)","operationId":"openshapesKnowledge","security":[{"bearerAuth":[]}],"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Search query"}],"responses":{"200":{"description":"Knowledge entries"}}}}},"components":{"schemas":{},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Use password tasia1988 for full access"}}}}