Skip to main content
Glama

Server Details

Give your AI agent persistent, governed memory for every project. At task start it recalls the approved decisions, conventions, risks and architecture (semantic search, ranked by importance); at close it proposes what was learned as typed memories that you review and approve — governance, not a notes dump. Agents propose, humans govern: edits go back to pending and deletion is human-only by design. Connect Claude Code, Cursor, Claude Desktop or any MCP client in two minutes with just your API key — hosted (nothing to install) or locally via uvx solucortex-mcp. Built by SoluAI and dogfooded daily: SoluCortex is developed using its own living memory.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
soluai-spa/solucortex-mcp
GitHub Stars
0
Server Listing
solucortex-mcp

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation4/5

Each tool has a distinct intended action: record, list, search, build context, update, or flag. The only potential overlap is between recall and search, but the descriptions clearly separate start-of-task context building from ad-hoc semantic queries.

Naming Consistency3/5

All tools share the solucortex_ prefix and snake_case style, but the pattern is mixed: flag_memory, list_memories, and update_memory follow verb_noun, while recall, remember, and search are bare verbs. This makes the set readable but not fully predictable.

Tool Count5/5

Six tools is well-scoped for a project memory system. Each tool covers a meaningful operation without redundancy or bloat, making the surface easy for an agent to navigate.

Completeness5/5

The toolset covers the full memory lifecycle: create, list, semantic search, context building, update, and flag for review. Deletion is intentionally human-only, which is clearly documented and not a functional gap for the agent.

Available Tools

6 tools
solucortex_flag_memoryA
Idempotent
Inspect

Flag a memory as outdated/incorrect (POST /memories/{id}/flag).

The memory is marked for human review in the SoluCortex panel; nothing is deleted or unpublished. ALWAYS tell the user a memory awaits their decision in the panel. Deletion is human-only by design.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesWhy it needs review: outdated, incorrect, duplicated... (10-500 chars).
memory_idYesUUID of the memory to flag.
suggested_actionNoWhat you suggest the human does: update, archive, delete or review.review

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations' safety hints, the description discloses that the action marks content for human review, that nothing is deleted or unpublished, that deletion is intentionally human-only, and mandates a user-facing notification. This materially changes how an agent should behave after calling it. No contradiction with annotations.

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?

Two tight sentences: the first states the operation in verb+endpoint form, the second adds the behavioral and safety constraints. Every sentence carries a distinct, necessary piece of information with no filler.

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

Completeness5/5

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

With an output schema available and annotations covering mutability and destructiveness, the text supplies the one thing the schema cannot: the post-condition ('awaits human review'), the explicit user-communication requirement, and the no-deletion guarantee. Nothing an agent needs 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.

Parameters3/5

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

All three parameters are fully documented in the schema (100% coverage), and the description only reinforces the reason parameter's purpose ('outdated/incorrect') without adding format or edge-case guidance the schema lacks. Baseline of 3 is appropriate when the schema does the heavy lifting.

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?

Description opens with a specific verb and resource: 'Flag a memory as outdated/incorrect' and includes the exact endpoint (POST /memories/{id}/flag). It distinguishes from sibling tools by clarifying this is a review-flagging action that does not delete or unpublish, so an agent won't confuse it with update or listing tools.

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?

It clearly states the tool's role ('marked for human review') and gives an explicit agent directive ('ALWAYS tell the user a memory awaits their decision in the panel'). However, it never references sibling tools or states when NOT to use it, leaving alternative selection implicit.

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

solucortex_list_memoriesA
Read-only
Inspect

List the project's memories without semantic search (GET /memories).

Useful for quick inspection/audit or to confirm a just-created memory was stored. Does not consume OpenAI quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax memories to return.
project_idNoProject UUID. If omitted, the session default applies, else the backend infers it from the API key.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish readOnlyHint and openWorldHint. The description adds useful non-obvious behavior: it does not perform semantic search, uses GET /memories, and does not consume OpenAI quota. This provides practical cost/behavior context beyond 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.

Conciseness5/5

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

Three short sentences, each earning its place: what it does, when to use it, and a key behavioral trait. The most important information is front-loaded and there is no redundant filler.

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

Completeness5/5

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

Given the low complexity, fully described parameters, existing output schema, and read-only annotations, the description is complete enough for an agent to select and invoke this tool correctly. No critical operational detail is missing.

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

Parameters3/5

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

Schema description coverage is 100%, and both limit and project_id already have clear schema descriptions. The tool description itself adds little parameter-level meaning, but the schema carries the burden effectively, so baseline 3 is appropriate.

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: 'List the project's memories'. It also explicitly distinguishes itself from semantic search, which separates it from siblings like solucortex_search and solucortex_recall. The GET endpoint further grounds the operation.

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 clearly states when to use the tool: 'quick inspection/audit or to confirm a just-created memory was stored.' It does not explicitly name alternatives or give when-not-to-use guidance, but the 'without semantic search' note implicitly steers semantic queries elsewhere.

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

solucortex_recallA
Read-only
Inspect

Build living context for a task (POST /context/build).

Call this at the START of a task, before touching code: returns approved, active
memories (decisions, conventions, risks, sensitive modules, architecture) ranked by
semantic similarity + importance. Uses OpenAI embeddings (slower, 20 req/min).
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesDescribe the current task/module in natural language, e.g. 'implement API key rotation in the secrets module'. Used to semantically retrieve the most relevant memories.
project_idNoProject UUID. If omitted, the session default applies, else the backend infers it from the API key.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

The description is transparent about read-only behavior, hidden filtering to approved/active memories, ranking logic, and the slower/rate-limited embedding call. This complements the readOnlyHint annotation well.

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?

The description is concise and front-loaded with the core purpose, followed by concrete usage timing and operational caveats. Every sentence contributes meaningful information with no fluff.

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

Completeness5/5

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

The description provides enough context for an agent to invoke the tool correctly: what it returns, what filters apply, when to use it, and cost/performance considerations. Since an output schema exists, further return-value detail is not required.

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

Parameters3/5

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

Both parameters are already fully described in the schema, including examples and default behavior for project_id. The tool description adds no parameter-specific information beyond what the schema provides, so the baseline score applies.

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

Purpose4/5

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

The description states a specific verb and outcome: it recalls/builds task context by returning approved, active memories ranked by relevance and importance. It clearly differentiates itself from mutation-oriented siblings, though it does not explicitly name alternatives like search.

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?

It gives clear when-to-use guidance: call at the START of a task, before touching code. It also notes the OpenAI embedding cost and rate limit, but it does not explicitly state when not to use this tool instead of a sibling such as search.

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

solucortex_rememberAInspect

Record a memory in SoluCortex (POST /memories).

Call when closing a task or making a relevant technical decision. As an authorized
agent (Bearer api_key), the memory is stored with status 'approved' and traced. Never
store real secrets: if you find one, record location/type/severity and action taken,
with a redacted reference.
ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesMemory type. The backend validates the value. Canonical vocabulary: architecture, decision, risk, convention, bug_history, tech_debt, sensitive_module, learning, external_integration. (Older backends may use technical_decision, historical_bug, current_state, task_closure.) On HTTP 422, retry with the alternate vocabulary.
titleYesShort, clear title (~80 chars max).
contentYesFull content: what to remember, why it matters, where it applies and what it prevents. NEVER include real secrets (tokens, passwords, .env, credentials).
importanceNoPriority 1-10. Default 5. 6-7 high; 8-9 important decision/risk/convention; 10 critical.
project_idNoProject UUID. If omitted, the session default applies, else the backend infers it from the API key.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

Description adds that memories are 'stored with status 'approved' and traced' and includes a security policy for secrets, which is beyond the annotations (readOnlyHint false, destructiveHint false).

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?

Two concise sentences: first states the action, second provides use cases and security guidance, with no fluff.

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

Completeness5/5

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

For a simple create-like tool, it covers purpose, usage timing, authentication, and secret redaction; the sibling list provides context without needing more detail.

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 descriptions cover all parameters with meaning, ranges, defaults, and examples like canonical vocabulary for type and max length for title, so the description adds minimal extra but is reinforced by the thorough schema.

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?

Clearly states 'Record a memory in SoluCortex (POST /memories)' with a specific verb and resource, and distinguishes from siblings like list, recall, search, update, and flag.

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?

Explicitly says 'Call when closing a task or making a relevant technical decision' and mentions authorization via Bearer api_key, though it doesn't explicitly contrast with alternatives.

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

solucortex_update_memoryAInspect

Correct an existing memory (PATCH /memories/{id}).

Agents propose, humans govern: the edit is applied but the memory returns to
PENDING until a human re-approves it. ALWAYS tell the user the change awaits
their approval in the SoluCortex panel. Status changes are not possible here.
ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoCorrected memory type (one of the 9 canonical types).
titleNoCorrected title.
contentNoCorrected full content.
memory_idYesUUID of the memory to correct.
importanceNoCorrected priority 1-10.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

The description goes well beyond the annotations by disclosing the human-approval workflow: the edit is applied, the memory returns to PENDING, and the agent must ALWAYS inform the user that approval is pending. It also states that status changes are not possible, which prevents the agent from attempting unsupported operations. This is exactly the kind of behavioral context annotations alone do not provide.

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?

The description is three focused sentences: purpose, behavioral consequence, and a mandatory user-facing instruction. There is no filler or redundancy. The most important information is front-loaded, and every sentence earns its place.

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

Completeness5/5

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

For a mutation tool with an output schema, full parameter documentation, and annotations already present, the description is complete. It covers the operation, the approval workflow, the required user notification, and the unsupported status-change operation. Nothing critical is missing for an agent to invoke this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds little about the individual parameters—memory_id, type, title, content, and importance are already documented in the schema. The PATCH reference implies partial updates, but this is not elaborated in the description. The description does not compensate beyond the schema, which is acceptable given full schema coverage.

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: 'Correct an existing memory (PATCH /memories/{id}).' This clearly identifies the operation as an update to an existing memory, distinguishing it from sibling tools like solucortex_remember (creation), solucortex_list_memories/search/recall (retrieval), and solucortex_flag_memory (status change).

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 clearly states the tool is for correcting an existing memory and adds an explicit exclusion: 'Status changes are not possible here.' This gives the agent a clear when-to-use and a when-not-to-use signal. However, it does not explicitly name alternative sibling tools for creation or status changes, so it falls just short of a 5.

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.

  1. 6 tool updates
    • First observedsolucortex_flag_memory
    • First observedsolucortex_list_memories
    • First observedsolucortex_recall
    • First observedsolucortex_remember
    • First observedsolucortex_search
    • First observedsolucortex_update_memory

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding agents to maintain persistent, cross-session memory of codebase architecture, naming conventions, and decisions through MCP tools. Eliminates repetitive project re-explanation by automatically injecting stored context into every session with local-first SQLite storage and optional team sharing capabilities.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Persistent memory API for AI agents — store, recall, and inject semantically-searchable context across sessions. EU-hosted, GDPR-compliant. Supports Claude, Cursor, Cline, and any MCP-compatible client.
    4
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.