Skip to main content
Glama

Memory Agent Ensure

memory_agent_ensure

Get-or-create this org's ontology Agent + shared memory profile.

Harness agents slug to agent-<label>. Cloud agents slug to agent-<cursor_agent_id>. Other agents read the profile with memory_agent_get or memory_entity_view.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoHarness label (cursor, grok, dispatcher). Omit for the caller.
agentNoOverride agent attribution label
modelNoCursor model id when known (composer-2.5, auto-smart, …)
harnessNoHarness type that owns this agent (cursor, grok-bot, …)
runtimeNoharness (MCP client) or cloud (Cursor cloud agent)
spawned_byNoParent Agent slug or label (dispatcher that spawned this cloud agent)
cursor_agent_idNoCursor cloud agent id (bc-…). Sets runtime=cloud when provided.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It discloses conditional side effects via 'Get-or-create' and explains the non-obvious slug mapping for harness and cloud agents. It doesn't explicitly state whether an existing profile is ever modified, but 'get-or-create' strongly implies idempotent ensure semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose, naming convention, and routing to read-only alternatives. The core action is front-loaded and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 optional parameters and an output schema, the description provides the essential decision context: what it ensures, how slugs are formed, and how other agents should read the profile. An explicit note about when to prefer memory_agent_set instead would make it fully complete, but the schema and output schema cover most remaining mechanics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter has its own description, establishing a baseline of 3. The description adds extra meaning by tying the name parameter to harness labels and cursor_agent_id to cloud agent slugs, which goes beyond the schema's raw field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Get-or-create this org's ontology Agent + shared memory profile.' This clearly conveys an ensure operation and immediately distinguishes it from read-only siblings like memory_agent_get and memory_entity_view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly routes read-only needs to alternatives: 'Other agents read the profile with memory_agent_get or memory_entity_view.' It also gives useful context on when harness vs cloud agent naming applies. It stops short of explicitly contrasting this with memory_agent_set, but the get-or-create framing largely communicates the intended use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.4/5.0
Disambiguation4/5

With 104 tools across many domains (memory, work, projects, files, agents, context, strategic, ontology), the use of clear prefixes (memory_, work_, project_, file_, agent_run_, context_) makes most tools distinct. However, there are some potential confusions between memory_session_* vs memory_state_*, and memory_recall vs memory_think vs memory_assemble_context, though descriptions clarify their specific purposes. Aliases like memory_playbook_get for memory_procedure_get are explicit and reduce ambiguity.

Naming Consistency5/5

Tool names follow a highly consistent pattern: prefix_domain_action (e.g., file_create, work_update, memory_recall, agent_run_start). All use snake_case, with verbs consistently placed after the domain prefix. Even less common tools like account_brief and attention_snapshot fit the overall naming scheme, making the set predictable and easy to navigate.

Tool Count3/5

At 104 tools, this is an exceptionally large surface area, far exceeding the 25+ threshold that feels heavy. However, the server covers an extensive domain (organizational memory, work management, project tracking, file sharing, agent orchestration, and strategic planning), which justifies a large count. Still, the sheer number may overwhelm agents, and some tools could be consolidated (e.g., many memory_session_* and memory_state_* variants).

Completeness4/5

The tool surface is remarkably complete for its stated purpose, covering CRUD operations for files, work items, projects, and memory, plus lifecycle management for agents, sessions, and strategic plans. Minor gaps exist (e.g., no direct memory_item_get by ID, no section removal in projects), but agents can work around these using existing tools like memory_recall or work_create with parent_id. Overall, the set minimizes dead ends.