evermemos-mcp
Server Quality Checklist
Latest release: v0.5.7
- Disambiguation4/5
Each tool has a specific role: discovery, storage, status check, search, briefing, deletion, and history. The retrieval tools (recall, fetch_history, briefing) overlap somewhat, but their descriptions clearly distinguish relevance search, chronological paging, and structured summaries.
Naming Consistency4/5Most tool names follow a verb or verb_noun pattern (list_spaces, remember, request_status, recall, forget, fetch_history). 'briefing' is a noun-only deviation, breaking the otherwise consistent style.
Tool Count5/5Seven tools is well-scoped for a memory management server, covering discovery, write, status, search, summary, delete, and history without being bloated.
Completeness3/5Core operations are covered (create, read, search, delete, list), but there is no explicit update tool, and 'remember' references a nonexistent 'check_conflicts' tool. Minor gaps exist around memory editing and conflict handling.
Average 4.5/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 2 community issues answered or closed in the last 6 months
- 4 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is passing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It communicates that the tool returns historical memories in chronological order and supports pagination, but it does not explicitly state that this is a read-only operation free of side effects, nor does it mention error behavior for unsupported memory types. The schema covers some of these details, but the description itself lacks explicit safety/reversibility language.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the primary action, but it repeats 'timeline review' twice ('Useful for chronological timeline review' and 'primary tool for timeline review'), which is slightly redundant. Despite that, it is concise and efficiently communicates the tool's purpose and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no output schema, and no annotations, the description provides clear usage context and differentiates the tool from recall. It covers the main use cases but doesn't explicitly describe the return format or pagination behavior details, although the schema already describes limit/offset and memory_type constraints. Overall, the description is sufficiently complete for an agent 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.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already having a detailed description. The tool description adds little beyond restating 'memory_type' and 'space' and provides no additional context that is not already in the schema. A baseline score of 3 is appropriate because the description does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Page through historical memories') and the resource ('in a space by memory_type'), and it distinguishes this tool from recall by framing it as a chronological timeline review versus relevance ranking. It also explicitly names the tool as the primary choice for timeline review, pre-delete verification, and post-delete re-checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when to use this tool ('when recall's relevance ranking is not sufficient' and 'when you need to browse all memories of a type') and lists the main use cases. It implies an alternative (recall) and gives context for choosing fetch_history over other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by detailing what the tool returns (user profile, recent episodes, key facts, foresights) and explicitly mentions a fallback behavior: 'When formal profile memories are unavailable, briefing may surface explicit fallback metadata and label it as such.' This goes beyond a simple read tool description, though it does not explicitly state whether the operation is read-only or if there are side effects. It is transparent about its output and edge-case handling, so a 4 is warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with about four sentences, each adding necessary information: core purpose, usage timing, return contents, and fallback behavior. It is front-loaded with the primary action and avoids filler. Every sentence earns its place, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, no output schema, and no annotations, the description does a good job of covering essential context. It explains the return structure (user profile, episodes, facts, foresights) and notes the fallback scenario, which is important for agent expectations. It does not elaborate on time-range parameters or max_items, but these are well-documented in the schema. Minor gaps like error behavior or performance limitations are not addressed, but overall the description is sufficient for an agent to use this tool effectively, earning a 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameters with descriptions, so the baseline is 3. The tool description does not add meaningful parameter-specific semantics beyond what the schema already provides. It implies a 'memory space' maps to space_id, but this is already evident from the schema. Since the description does not compensate or elaborate on parameter usage, a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get a structured context briefing for a memory space.' It specifies the resource (memory space) and the output type (structured briefing), and distinguishes it from sibling tools like recall or fetch_history by framing it as a session-start summary. The phrase 'restore high-value context quickly' makes the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this at the start of a new session to restore high-value context quickly,' providing a clear use case. It also claims it is 'the fastest way to catch up on the most important currently available context,' which helps an agent decide when to use it. It does not name specific alternatives or exclusions, but the guidance is strong enough to warrant a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the response interpretation order: 'Check success/error first, then interpret lifecycle.state,' and implies a read-only status poll. It doesn't elaborate on possible errors or side effects, but provides meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the purpose, the second gives when-to-use and interpretation guidance. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one param, no output schema), and the description covers usage context and key response fields. It doesn't detail all lifecycle states or error formats, but the provided guidance is sufficient for a basic status-check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the request_id parameter already described as 'Queued remember request_id returned by remember.' The description reinforces this provenance but adds no new semantic detail, so it meets the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' and clearly identifies the resource: async processing status for a prior remember request. It distinguishes itself from sibling tools by focusing on status checking of a remember request_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'when remember returned a request_id and you need to know whether extraction is still queued or has been reported complete by upstream.' It gives clear context but doesn't explicitly list alternatives or when-not-to-use scenarios, hence a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses a limitation: some native EverMemOS Cloud spaces may not appear. It also clarifies the memory space concept and gives examples. It doesn't mention return structure or error scenarios, but for a list-only operation this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and every sentence adds value: main function, usage order, naming examples, caveat, fallback instruction. It's slightly long but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a simple listing tool: it explains what spaces are, how to use the tool, what to watch out for, and what to do if empty. The lack of an output schema is mitigated by the clear 'List' semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (limit, query) are fully described in the schema with 100% coverage. The description doesn't add syntax details, but it reinforces the purpose of discovering space IDs, which indirectly helps understand the query parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and identifies the resource 'MCP-visible memory spaces.' It explicitly distinguishes from siblings by positioning it as the first call to discover space_id values before using other memory tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance: 'Call this first to discover which space_id values are available before using other memory tools.' It also explains the naming convention and gives a fallback action if no spaces exist, making usage boundaries clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of behavioral disclosure. It reveals the parent_id resolution mechanism, the 100-item scan window limitation, and the possibility of unmatched IDs if the memory was already deleted or outside the window. It also advises verification, making the deletion process and its potential failure modes transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, then provides procedural details and caveats. Every sentence contributes value: purpose, prerequisites, and failure/verification guidance. No waste or redundancy, making it easily digestible for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, yet the description covers all necessary context: deletion request, identification of targets, resolution mechanics, limitations, and post-deletion verification. It is complete enough for an agent to select and invoke the tool correctly and to anticipate outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's descriptions cover 100% of parameters, including detailed semantics for memory_ids (memory id vs. parent_id, resolution failure behavior). The description adds little new parameter-level meaning; it reinforces the workflow but relies on the schema for exact semantics. Baselines at 3 given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Request deletion of specific memories from a space.' It uses a specific verb ('request deletion') and resource ('memories'), and distinguishes itself from siblings by explicitly directing users to fetch_history or recall for identification, and fetch_history for verification. This makes it unambiguous which tool to use for deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: use fetch_history or recall to identify targets first, and verify deletion afterwards with fetch_history. It also explains when IDs may remain unmatched, giving users a clear expectation of when to retry or confirm. This goes beyond simple purpose and offers actionable alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals return format (citations with memory_type, snippet, timestamp, relevance score), result status ('searchable, provisional, or fallback'), dependence on upstream pending_messages, and auto-detection from git remote. This is thorough, though it does not explicitly state that the operation is read-only, which would have been useful. However, the verb 'search' strongly implies no mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, front-loading the purpose and usage, then providing return details, caveats, alternative tool guidance, and auto-detection behavior. Each sentence adds meaningful information—no filler or redundancy. It is appropriately sized for a complex search tool with 12 parameters and no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, no output schema, no annotations), the description provides a complete picture. It explains what results look like, how to interpret status flags, when to use an alternative, and how space selection works. The schema covers parameter syntax, and the description fills the behavioral and contextual gaps, making the tool fully usable by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does 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 value by explaining that when both space_id and space_ids are omitted, the tool auto-detects from git remote, and by summarizing the meaning of the relevance-ranked results. It also notes that pending signals may be absent even if extraction is in progress, which indirectly informs the interpretation of parameters like current_time. This goes beyond the schema's straightforward descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search for relevant memories in one or more spaces.' It distinguishes itself from sibling tools like fetch_history by stating that recall is for retrieving context about prior decisions, preferences, and conventions, while fetch_history is for chronological review. This clearly articulates the tool's unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this when you need context about prior decisions, preferences, conventions, or anything discussed in previous sessions.' It also provides exclusion guidance by recommending fetch_history for chronological review or delete verification, and clarifies auto-detection behavior when space identifiers are omitted. This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses sensitive-pattern scanning and blocking, automatic conflict checking for chat:* spaces, queued extraction and searchability delays, status-check behavior with include_status, and flush semantics. This goes well beyond a basic 'store information' statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but dense with actionable information. Every sentence introduces a distinct behavioral or usage detail—no filler or redundancy. It is front-loaded with the core purpose and then branches into security, conflict handling, processing states, and operational flags, making it easy to locate key points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no annotations, no output schema), the description is highly complete. It covers all critical aspects: what to store, space selection, sensitive data handling, asynchronous processing, conflict checking, flush behavior, and status verification. It even guides on when to use sibling tools for state distinction. The lack of a return-value description is mitigated by the detailed write/status behavior described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does 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 meaningful context beyond the schema: it explains space_id domain semantics (coding:<repo>, chat:preferences, etc.), recommends when to set flush=false and include_status=true, and clarifies check_conflicts default behavior. This adds value above the schema's property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Store information in long-term memory within a specific space.' It uses a specific verb and resource, and the proactive use cases (architecture decisions, user preferences, project conventions, etc.) distinguish it from sibling tools like recall, briefing, forget, and list_spaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance and alternatives. It says 'Use this proactively to save...' and directs users to related tools: 'Use check_conflicts to override,' 'use request_status, recall, or briefing to distinguish states.' It also gives contextual advice on flush behavior, include_status, and space selection, making it clear when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tt-a1i/everos-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server