Skip to main content
Glama
bubua12

memos-mcp-server

by bubua12

Search memos

search_memos
Read-onlyIdempotent

Find memos by keywords, tags, time range, pinned state, visibility, content properties, space, or saved view. Defaults to your own active memos; returns snippets or full content with pagination.

Instructions

Find memos by keywords, tags, time range, pinned state, visibility, content properties, space or saved view, newest first. By default searches only your own active (non-archived) memos. Each result shows the memo id, time, visibility, tags and a one-line snippet; set full_content=true to get complete Markdown (useful for summarizing). Use next_page_token to page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoInclusive upper time bound, same formats as `from` ("2026-09-30" includes that whole day)
hasNoContent properties that must be present: task_list, incomplete_tasks, link, code, location
fromNoInclusive lower time bound: "2026-09-01", "2026-09", "today", "this week", "last month", "7d", "24h", or an ISO timestamp
sortNonewest
tagsNoTags without "#". A parent tag also matches its children ("work" matches #work/project).
viewNoTitle or id of a saved Memos view; its filter is applied too (see get_overview)
limitNo
queryNoKeywords that must all appear in the content (case-insensitive). Wrap phrases in double quotes.
spaceNoSpace title or id; "none" for memos outside any space. Omit for all.
filterNoAdvanced: raw Memos CEL filter ANDed with the rest. Fields: content, creator, created_ts, updated_ts, pinned, visibility, space, tags, has_task_list, has_link, has_code, has_incomplete_tasks, has_location. Example: `content.matches("^TODO") || size(tags) == 0`
pinnedNoOnly pinned (true) or unpinned (false) memos
creatorNoUsername whose memos to search. Defaults to you (or everyone when `space` is set). "*" = every memo you can read.
archivedNoSearch archived memos instead of active ones
tag_modeNoRequire all listed tags (default) or any of themall
page_tokenNonext_page_token from a previous call with the same criteria
time_fieldNoWhether from/to apply to the creation or last-update timecreated
visibilityNo
full_contentNoReturn full content instead of snippets

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent and non-destructive, so the description's value is elsewhere: it discloses the default result scope, the per-result shape (id, time, visibility, tags, one-line snippet), the full_content mode for Markdown, and that results are newest first. Return-shape disclosure is especially valuable because there is no output schema.

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 dense sentences covering filters, default scope, and result/pagination behavior in roughly seventy words for an 18-parameter tool, with the filter enumeration front-loaded. Nothing is padding; every clause carries information an agent would otherwise have to guess.

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 an 18-parameter, zero-required, no-output-schema search tool, the description supplies the two things the schema cannot: what the default query returns and how to page through it. It is not fully complete because it never explains that unpaged results are capped by limit or how the advanced filter interacts, but the safety annotations cover the rest.

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 high (83%), so the baseline is 3; the schema already explains from/to formats, tag parent matching, creator defaults, CEL filter fields and so on. The description adds only a small amount of meaning beyond that (full_content being useful for summarizing, newest-first default ordering) and omits limit, sort, tag_mode, creator and filter entirely.

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?

Opens with a specific verb+resource ('Find memos') and enumerates the filter dimensions (keywords, tags, time range, pinned state, visibility, content properties, space, saved view), which is more than a restatement of the name. It never names a sibling, so an agent must infer the boundary with get_memo/export_memos rather than being told.

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?

Gives real selection context: default scope is your own active (non-archived) memos, and archived=false/creator/space defaults are implied by the schema. It stops short of stating when NOT to use this tool or pointing at the single-memo and export alternatives, so it is clear context without exclusions.

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