Production-ready MCP server for Mem.ai API that exposes intelligent memory platform capabilities to AI assistants via the Model Context Protocol
The server provides 6 well-defined tools with clear naming and descriptions. All tools follow verb_noun conventions (mem_it, create_note, read_note, delete_note, create_collection, delete_collection). Descriptions are substantive (100-300 chars) and explain WHAT the tool does and WHEN to use it. However, output schemas are not documented, we can infer structure from docstrings, but there is no explicit JSON Schema declaration of return types. Parameter descriptions are detailed and include examples, but format constraints are embedded in text rather than declared as JSON Schema enums or patterns. Error handling is present but basic, tools catch exceptions and return error strings without categorization or recovery guidance. Security is handled via environment variable injection (MEM_API_KEY via .env), which is correct. One critical gap: mem_it is a powerful tool that accepts free-form instructions but has no validation guidance for what constitutes valid instructions.
Create a new collection to organize notes. Collections are containers for organizing related notes. Examples include 'Work Projects', 'Research Papers', 'Meeting Notes', etc.
Create a new structured note in Mem.ai. Notes are markdown-formatted documents that can be organized into collections. Use this when you want explicit control over the note content and organization, rather than automatic processing via Mem It.
Delete a collection from Mem.ai by its ID. This removes the collection but does not delete the notes within it. The notes will simply no longer be associated with this collection.
Delete a note from Mem.ai by its ID. This permanently removes the note. This action cannot be undone.
Save and intelligently process content with Mem It. Mem It is the most powerful way to save information to your Mem.ai account. It automatically processes, organizes, and extracts knowledge from various content types including notes, web pages, meeting transcripts, emails, and documents.
Output schemas not documented. Tools return structured data (notes with id, title, content, created_at, updated_at, collection_ids) but no JSON Schema describes the response structure. LLMs cannot reliably extract response fields or plan downstream tool calls.
Error handling lacks categorization and recovery guidance. Tools catch exceptions and return 'Error: <str(e)>' without distinguishing retryable vs permanent failures or providing next steps. LLMs cannot self-correct or know when to ask the user.
Destructive tools (delete_note, delete_collection) lack confirmation/dry-run support. These permanently remove data. No pattern to preview or confirm before executing. An agent mistake deletes user data irreversibly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 11 | <=2025-11-25 | v2 |
| 2026-03-09 | C | 60 | - | v1 |
Read and retrieve a note from Mem.ai by its ID. Use this to fetch the full content and metadata of a specific note.
Parameters use free-form text without enum/pattern constraints. 'instructions' parameter in mem_it accepts any string, no guidance on valid instruction patterns. LLMs may hallucinate invalid instructions.
No pagination support in tools that could return multiple results. If a user has hundreds of notes or collections, there is no way to limit results or fetch paginated data. Large responses blow context windows.
Tool descriptions include example values (e.g., '01961d40-7a67-7049-a8a6-d5638cbaaeb9') in parameter descriptions. LLMs tend to reuse example values literally in real calls, causing failures when the example UUID is passed instead of an actual note ID.