Skip to main content
Glama

My Notes

query_notes
Read-only

Recall the USER'S OWN saved notes — their personal investment knowledge base (owner-scoped, only ever their notes). Two combinable ways: • SEMANTIC recall via q — natural language ("what did I say about foundry manufacturing?"); results are ranked by MEANING with a similarity score (cross-language OK). • Structured filters: stock (a ticker → their notes about it), theme (a sector/trend NAME → resolved to the megatrend, subtree included), gics (6-digit code), tag, note_type (reference/tracking/thesis/decision), since (e.g. '30d'). 📌 stock + relation (direct|indirect|any, default any) splits how a note relates to that ticker — same idea as newsfeed direct/indirect: direct = the note is ABOUT it (a subject); indirect = it's only REFERENCED (e.g. a peer named in a note about ANOTHER stock — a "NVDA vs peers" note surfaces under AMD as indirect). Every returned note carries a relation label when you filter by stock, so you can say "1 note about AMD + 1 that only mentions it". Use relation="direct" for "notes really about X". Returns note SUMMARIES + linked entities + similarity — NOT the full body (call get_note(id) for that). limit default 10 (max 50). 🔴 FUSE personal + live: when the user asks about something they've likely noted, pair this with the live read — e.g. pulse(kind='asset', target=NVDA) AND "your NVDA thesis from last week said …". That personal- knowledge + live-graph combination is the whole point of the notes layer.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "query_notes"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoSemantic query text — recall notes by MEANING (cross-language).
tagNoTag filter.
gicsNoGICS code filter.
limitNoMax rows (default 20, hard cap 50). Keep SMALL + narrow the scope; page/refine rather than dump — heavily-covered assets have hundreds of articles.
sinceNoOnly notes since this date/window (e.g. `30d` or YYYY-MM-DD).
stockNoFilter to notes about a ticker (name/ticker → resolved).
themeNoFilter to a theme (name → megatrend, incl. subtree rollup).
contextNoOPTIONAL but RECOMMENDED — paste the user's FULL request VERBATIM (any language: 'ขอราคาผลไม้ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `ticker` entity means (the apple COMPANY vs the fruit COMMODITY; which Samsung). One context per call, shared by all tickers here.
relationNoWith `stock=`: `direct` (note ABOUT it) | `indirect` (merely referenced) | `any` (default).
note_typeNoFilter by type (reference/tracking/thesis/decision).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

readOnlyHint=true already tells the agent this is a safe read, but the description adds real substance: owner scoping, meaning-ranked results with a `similarity` value, per-note `relation` labels on stock-filtered results, and the explicit warning that bodies are omitted. The one flaw is a factual conflict with the schema on the default limit ('default 10' in prose vs 'default 20' in the schema), which could mislead on result volume.

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

Conciseness4/5

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

Front-loaded with the core scope, then cleanly bulleted by retrieval mode, with emphasis markers on the highest-stakes rule (fuse with live data). It is on the long side and the closing paragraph is motivational rather than operational, but each section maps to a distinct decision the caller must make.

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 10-parameter, all-optional tool with no output schema, the definition still states what comes back (summaries, linked entities, similarity, relation labels) and points to get_note for the full body. Nothing an agent needs to construct a correct call or interpret the response is missing.

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

Parameters5/5

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

Schema coverage is already 100%, so the baseline would be 3, but the description adds genuine meaning: how `stock` and `relation` compose, what `theme` resolution and subtree rollup actually do, and a worked AMD/NVDA example showing indirect vs direct. That is interpretive guidance the schema cannot express on its own.

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 opening sentence gives a specific verb, resource and ownership scope ('Recall the USER'S OWN saved notes ... owner-scoped, only ever their notes'), and it explicitly demarcates this tool from get_note by saying the results are summaries, not bodies. An agent can tell this apart from search_news, get_note and write_note without opening any schema.

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

Usage Guidelines5/5

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

It lays out the two combinable retrieval modes (semantic `q` vs structured filters), states which one to reach for, gives the concrete 'notes really about X' rule for relation="direct", and even prescribes pairing the call with the live read (pulse) when the user has likely noted the topic. Exclusions and alternatives are explicit rather than inferred.

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.