Cortex
Server Details
Patent-pending semantic memory for AI agents: quality-gated writes, conflict tracking. Free trial.
- Status
- Healthy
- Uptime
- 96.5% over 39 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- FilippoPilo/cortex-connector
- GitHub Stars
- 0
- Server Listing
- cortex-connector
TDQS
Scored across 7 tools
Each tool has a clearly distinct role: write saves, search finds individual memories, recall synthesizes, fetch retrieves full text, forget deletes, conflicts shows contradictions, and write_status checks a queued write. The descriptions actively call out edge cases (e.g., search vs. recall), so an agent should rarely misselect.
Five tools follow a consistent cortex_verb pattern, but fetch and search break the prefix convention. Also, cortex_conflicts uses a noun rather than a verb. The names are still readable and lowercase, but the set is visibly mixed.
Seven tools is well-scoped for a personal memory layer: write, search, recall, fetch, forget, conflict detection, and write-status cover the core workflows without redundancy. No tool feels superfluous.
The surface covers the full memory lifecycle: save, retrieve individually, synthesize, fetch full content, check async status, list conflicts, and permanently delete. The write tool also handles updates via corrected versions, so there are no obvious dead ends.
Available Tools
7 toolscortex_conflictsShow conflictsARead-onlyInspect
Use this when the user asks what contradicts what in their memory, or when a memory you just read is flagged as conflicting and the user has to decide which version holds. Returns the pairs of contradicting statements with their status. Do not use it as a list of memories: it only returns detected contradictions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds useful behavior beyond that: it returns only detected contradictions and describes the result as pairs of statements with status. This clarifies scope and output without repeating annotation data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: the trigger conditions are front-loaded, the return shape is stated, and the misuse case is explicitly ruled out. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only tool with no output schema, the description is fully sufficient. It tells the agent when to invoke the tool, what it returns, and what it deliberately excludes, leaving no critical gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no semantics to enhance. The description correctly implies a no-input read operation, matching the empty input schema. Baseline 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (detected contradictions in memory) and a clear verb (returns pairs of contradicting statements). It explicitly distinguishes itself from a general memory list, so an agent can tell it apart from cortex_recall and other siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use conditions: the user asks what contradicts what, or a memory is flagged as conflicting. It also provides a clear when-not-to-use exclusion ('Do not use it as a list of memories'), though it does not name a specific alternative tool to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_forgetForget memoryADestructiveInspect
Use this when the user asks to delete a specific memory, given the id returned by search. Ask the user to confirm before calling it: the deletion is permanent and cannot be undone. Do not use it to fix a memory that is merely out of date: saving the corrected version with cortex_write is what keeps the history.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the memory to delete, exactly as returned by search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as destructive, but the description goes further by disclosing that deletion is permanent and cannot be undone, and by requiring user confirmation before calling. This adds important behavioral context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler. The trigger is front-loaded, followed by the confirmation requirement and the explicit non-use case. Every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool, the description covers the action, input source, confirmation step, permanence, and the alternative for stale memories. With annotations and schema covering the rest, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes id as 'exactly as returned by search.' The description reinforces the same constraint but does not add new format or selection semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action — deleting a specific memory using the id returned by search — and clearly distinguishes it from cortex_write for correcting outdated memories. This lets an agent know exactly what the tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ('when the user asks to delete a specific memory'), a required precondition (ask the user to confirm), and an explicit alternative for out-of-date memories (use cortex_write). This is strong guidance on when to invoke this tool versus a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_recallRecall & synthesizeARead-onlyInspect
Use this when the user asks about a topic as a whole ("what do you know about X", "where are we with X", "catch me up on X"): returns one narrative synthesis of the relevant memories, saying what holds now and what was superseded. Do not use it to look up a single fact or when you need sources to cite: search returns individual memories with their urls.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds meaningful behavioral context: the tool produces one narrative synthesis and distinguishes current facts from superseded ones. It also warns that individual memory URLs are not provided, which is valuable for setting expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences front-load the use case, provide examples, and then state the exclusions and alternative. No redundant phrasing or filler exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one free-text parameter, no output schema, and annotations already covering the read-only safety profile, the description fully equips an agent to decide when to use it and what kind of response to expect. It also covers the main negative case (single facts needing citations).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'query' as a string with no description, so the tool description carries the burden. It effectively explains the query semantics by framing it as a topic-as-a-whole request and giving concrete examples, which is sufficient for a single free-text parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns a narrative synthesis of relevant memories. It distinguishes itself from search by noting that recall is for topic-level questions, not single facts or cited sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly lists when to use the tool with example phrasings ('what do you know about X', 'catch me up on X') and when not to use it ('single fact' or 'need sources to cite'). It names the alternative, search, making the routing decision unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_writeSave memoryAInspect
Use this whenever the user tells you to remember, note down, keep or save something, in any language. Use it as well when they state something they will need again later and would not want to repeat: a decision and the reason behind it, a stable fact about them or their work, a preference or a constraint, a conclusion they reached after effort, a correction of something believed before. Then say in one line what you saved, so they can tell you to drop it. The server rejects duplicates by itself: a refused write is not an error, do not rephrase it and try again. Do not save questions, brainstorming, passing remarks or anything the user has not actually stated, and never save passwords, tokens, keys, card numbers or other credentials, even if the user pastes them.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| basis | No | Origine dell'informazione: 'observed' se letta direttamente da una fonte (documento, output di uno strumento, dato reale), 'inferred' se e' una deduzione o una stima. Registrata al salvataggio e restituita al richiamo. | |
| title | Yes | Short title, in the user's language, e.g. "Billing service: chosen database" | |
| claims | No | Opzionale. Fatti atomici gia strutturati, uno per decisione o affermazione: se li passi, il rilevamento dei conflitti li usa direttamente invece di estrarli dal testo. Esempio: {subject: 'Project Vega', predicate: 'adotta', object: 'Redis'}. | |
| content | Yes | Text to remember, in the user's language |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the basic annotations, the description discloses that the server rejects duplicates, that a refused write is not an error, that the agent should announce what it saved in one line, and that credentials must never be saved. These are valuable behavioral details not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but densely packed with actionable guidance. It is front-loaded with the primary trigger, then expands into use cases, response behavior, duplicate handling, and exclusions. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema and five parameters, the description provides comprehensive context: when to use it, what to save, what never to save, how to handle refusals, and what to say afterward. The remaining parameter details are already covered by the rich input schema and examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (80%), so the baseline is 3, but the description adds meaningful content-selection semantics: it defines what kinds of content qualify, what must be excluded, and that the user's language should be used. This goes beyond the schema's short field descriptions, though it does not elaborate on tags, basis, or claims.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific trigger: 'Use this whenever the user tells you to remember, note down, keep or save something.' It names the resource (memory) and the action (save), and its scope is clearly distinct from the sibling recall/forget/conflicts tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use conditions ('whenever the user tells you to remember...', 'when they state something they will need again later') and explicit when-not-to-use cases ('Do not save questions, brainstorming, passing remarks...'). It also references the complementary drop behavior, helping the agent distinguish this write tool from the forget path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_write_statusWrite statusARead-onlyInspect
Use this when a previous cortex_write returned a job_id as queued and the user asks whether it was saved: returns the quality gate verdict for that job and any contradiction it opened. Do not call it for a write that already came back with a verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id returned by a cortex_write that came back as queued |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and non-destructive behavior. The description adds useful behavioral context by specifying that it returns the quality gate verdict and any contradiction for a queued job, which is beyond what the annotations express. It does not cover staleness or edge-case behavior, but that is not critical for this simple read-only status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The triggering condition is front-loaded, the return behavior is stated, and the negative case is included. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only status tool with no output schema, the description covers the trigger, the return content, and the do-not-call case. An agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single job_id parameter is already described accurately in the schema. The description reinforces that the job_id must come from a queued cortex_write, but it does not add new format, validation, or semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action: check the quality-gate verdict of a queued cortex_write job and return any contradiction it opened. It clearly distinguishes itself from the cortex_write initiation tool and other siblings by referencing the queued job_id follow-up context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly defines the triggering condition: a previous cortex_write returned a job_id as queued and the user asks whether it was saved. It also provides a clear negative rule: do not call it when the write already came back with a verdict.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchFetch memoryARead-onlyInspect
Use this when a search result looks relevant and you need its full text before answering. Takes the id returned by search, and returns the memory with its url, which you cite in your answer. Do not call it with an id from anywhere else: only search results carry valid ids.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of a memory, exactly as returned by search |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive behavior. The description adds useful context by clarifying that the returned memory includes its url for citation and that ids are only valid if originating from search. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no filler. The primary usage instruction is front-loaded, followed by parameter provenance and an important constraint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool with an output schema and annotations, the description is complete. It covers when to use, parameter source, return behavior, and the citation requirement. No critical operational information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the id parameter. The description adds value by explaining that the id must come from search results and exactly as returned, providing provenance that the schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb ('fetch') and resource ('memory'), and clearly differentiates from search by specifying it retrieves full text for a relevant search result. It also explicitly says valid ids come only from search, distinguishing it from other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: use when a search result looks relevant and full text is needed before answering. It also gives an exclusion: do not call with ids from anywhere else, since only search results carry valid ids. This leaves no ambiguity about invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch memoriesARead-onlyInspect
Use this when the answer depends on the user's own context: facts about them or their work, decisions they made, preferences or constraints they stated, or anything they refer back to from an earlier conversation ("as we agreed", "my project", "the client we discussed"). Use it as well when the user asks for something done their usual way, in their format, tone, style or stack ("the way I normally write these", "my usual setup"): their way is what the memory holds. Also use it when the user asks what you know or remember about something. Returns the matching memories with id, title and url to cite; fetch returns the full text of one. Cortex is the user's own memory layer: what is saved through it stays available in the other AI apps they connect to the same account. Do not use it for general knowledge, for questions that do not depend on this particular user, or when everything needed is already in this conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | What to look for, in natural language and in the user's own words, e.g. "which database we chose for billing" |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral value by explaining the result shape (matching memories with id, title, and url), the relationship to fetch, and that Cortex memory persists across other connected AI apps. It does not describe ranking or limit behavior, but that gap is minor given the output schema and low complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat long but well structured and front-loaded with the primary use case. Each sentence adds either a usage trigger, an exclusion, a return-behavior note, or context about the memory layer. A few clauses are repetitive, but the content is dense and useful rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only search tool with a full output schema and rich annotations, the description is complete. It covers when to use it, when not to use it, what it returns, how it relates to fetch, and the cross-app persistence semantics of Cortex. Nothing an agent needs to select or invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the query parameter already has a strong description with an example. The tool description reinforces that queries should be in the user's own words and tied to their context, but it does not substantially add parameter-level meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies search as the tool for retrieving user-specific memories from the Cortex memory layer. It distinguishes itself from fetch by stating that search returns matching memories with id, title, and url, while fetch returns the full text of one memory. The verb and resource are explicit and the boundary with a sibling is drawn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives detailed, explicit when-to-use guidance: user-dependent facts, preferences, constraints, earlier conversation references, and requests about what the assistant knows or remembers. It also names exclusions: general knowledge, questions not depending on this user, and cases where everything needed is already in the conversation. This is model usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
cortex_forget1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"id della memoria da eliminare"New value: +"The id of the memory to delete, exactly as returned by search"
- Changed
cortex_write1 field changed- changed
Input schema / properties / title / descriptionPrevious value: -"Short title"New value: +"Short title, in the user's language, e.g. \"Billing service: chosen database\""
- Changed
cortex_write_status1 field changed- changed
Input schema / properties / job_id / descriptionPrevious value: -"job_id restituito da cortex_write"New value: +"The job_id returned by a cortex_write that came back as queued"
- Changed
fetch1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"id della memoria"New value: +"The id of a memory, exactly as returned by search"
- Changed
search1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Query in linguaggio naturale"New value: +"What to look for, in natural language and in the user's own words, e.g. \"which database we chose for billing\""
1 tool update
- Changed
cortex_write2 fields changed- changed
Input schema / properties / content / descriptionPrevious value: -"Testo da ricordare"New value: +"Text to remember, in the user's language" - changed
Input schema / properties / title / descriptionPrevious value: -"Titolo breve"New value: +"Short title"
2 tool updates
- Changed
cortex_write1 field changed- added
Input schema / properties / claimsAdded value: +{ + "description": "Opzionale. Fatti atomici gia strutturati, uno per decisione o affermazione: se li passi, il rilevamento dei conflitti li usa direttamente invece di estrarli dal testo. Esempio: {subject: 'Project Vega', predicate: 'adotta', object: 'Redis'}.", + "items": { + "properties": { + "claim_text": { + "type": "string" + }, + "confidence": { + "type": "number" + }, + "object": { + "type": "string" + }, + "predicate": { + "type": "string" + }, + "subject": { + "type": "string" + } + }, + "required": [ + "subject", + "predicate", + "object" + ], + "type": "object" + }, + "type": "array" +}
- Added
cortex_write_status
1 tool update
- Changed
cortex_write1 field changed- added
Input schema / properties / basisAdded value: +{ + "description": "Origine dell'informazione: 'observed' se letta direttamente da una fonte (documento, output di uno strumento, dato reale), 'inferred' se e' una deduzione o una stima. Registrata al salvataggio e restituita al richiamo.", + "enum": [ + "observed", + "inferred" + ], + "type": "string" +}
6 tool updates
- First observed
cortex_conflicts - First observed
cortex_forget - First observed
cortex_recall - First observed
cortex_write - First observed
fetch - First observed
search
Related MCP Connectors
Hosted persistent memory with semantic search, importance and TTL for AI agents.
Persistent memory for AI agents. EU-hosted, privacy-first, hybrid recall, contradiction detection.
Persistent memory for AI agents. Semantic recall by meaning, not just keywords. No signup needed.
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides versioned, structured memory for AI agents, allowing them to store facts, detect conflicts, and track knowledge history via a hosted SaaS platform. It enables efficient hierarchical information retrieval and semantic search while keeping token usage constant as memory scales.710 npm8Apache 2.0
- AlicenseNot gradedqualityDmaintenancePersistent memory for AI agents. Store and semantically search memories via REST API or MCP. Free tier available.MIT
- AlicenseAqualityDmaintenanceEnables AI agents with persistent semantic memory, including semantic recall, knowledge graphs, and instant domain expertise via pre-built Intelligence Packs.1027 npmMIT
- FlicenseNot gradedqualityCmaintenanceThe memory operations platform for production AI agents — eval-weighted recall, multi-evaluator consensus, GDPR Art. 17/20 governance, multi-tenant RBAC, and audit logging built in.-
Glama MCP Gateway
Add one secure layer between your agents and this server.