Skip to main content
Glama

Server Details

Continuity for agents: a live memory you can read and cite right now, outliving the context window.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 81 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
PeterAtPondo/kit-demo-mcp
GitHub Stars
0
Server Listing
Kit memory demo
ChatGPT
–
Claude
–

TDQS

B3.2/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have clear distinct purposes, but wake already returns visible knowledge areas, overlapping with areas, and recall/remember both retrieve memories. The use of 'remember' for a read-by-id operation is semantically counterintuitive and could be mistaken for a write tool, though the descriptions clarify query-vs-id retrieval.

Naming Consistency3/5

All tool names are lower-case and mostly single words, with one underscored compound (ranking_compare). However, they mix nouns (areas, presence, systems) and verbs (focus, recall, remember, wake) without a predictable verb_noun pattern, making the convention readable but inconsistent.

Tool Count4/5

Eight tools is a reasonable size for a memory/archive demo, covering initialization, discovery, focus, search, read, presence, ranking, and external systems. A few tools are niche, but the set is not bloated or thin.

Completeness2/5

The surface lacks any tool to create, update, or delete memories, despite focus explicitly configuring where new memories are stored and referencing commit/note/handoff operations that are not exposed. Agents can search and read memories, but cannot persist new knowledge, which is a significant lifecycle gap.

Available Tools

8 tools
areasareasCInspect

List the knowledge areas in this Lady Whiskerdown.

NameRequiredDescriptionDefault
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.

TDQS

C2.6/5.0
Behavior2/5

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

Annotations contain only a title, so the description carries the full burden. "List" weakly implies a read, but there is no statement about read-only vs. mutating behavior, side effects, permissions, or whether kit_session_id is required in practice. For a tool with zero behavioral annotations this is a real gap.

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?

A single short sentence, front-loaded with the verb, with no filler or hedging. The only cost is that the flavor phrase "this Lady Whiskerdown" consumes words without adding information.

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

Completeness2/5

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

For a listing tool with no output schema, the description should at least indicate what an "area" looks like in the response or how results should be used. Instead the agent learns only that a list exists, leaving the return shape and downstream usage unexplained.

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 the single parameter kit_session_id is fully documented in the schema, including the subagent caveat. The description adds no meaning beyond the schema, so the baseline 3 applies.

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

Purpose3/5

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

"List the knowledge areas" gives a clear verb+resource, but the qualifier "in this Lady Whiskerdown" is an opaque in-joke that never defines what the resource actually is or where it lives. Nothing distinguishes it from siblings like systems, focus, or recall, which plausibly return related catalog-like data.

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

Usage Guidelines2/5

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

No guidance on when to call this versus the other seven sibling tools, no prerequisite or ordering hint (e.g. call before recall/focus), and no exclusions. The agent must guess its place in the workflow.

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

focusfocusAInspect

Set this operator's write focus: the knowledge area new memories are stored under, and optionally the project being worked on. The wake card's chips call this; it is also callable directly. Holds until changed or idle past the TTL; explicit area/project args on commit/note/handoff still win.

NameRequiredDescriptionDefault
areaNoKnowledge-area slug for new writes. Empty string or omitted clears to General (no area routing).
projectNoProject slug for new writes. Empty string clears.
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations beyond the title, the description carries the behavioral burden and discloses key stateful traits: the focus holds until changed or idle past the TTL, and explicit per-call arguments still win. It does not describe error behavior, permission requirements, or return values, but for a non-destructive focus-setting tool it provides meaningful operational 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/5

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

The description is three tight sentences with no wasted wording. It front-loads the core action and then adds persistence and override behavior in a logical order.

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 a simple state-setting tool with full parameter schema coverage and no output schema, the description covers purpose, caller context, persistence, and precedence. It could additionally specify the TTL duration or failure behavior, but nothing critical for calling it correctly is missing.

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 coverage is 100%, so the schema already documents the parameters. The description adds useful meaning by explaining that area and project determine routing for new memories and that explicit arguments on commit/note/handoff take precedence, which is not expressed in the 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?

The description states a specific verb and resource: 'Set this operator's write focus: the knowledge area new memories are stored under, and optionally the project being worked on.' This clearly distinguishes the tool from storage/retrieval siblings like remember, recall, and areas by explaining that it configures routing for future writes rather than performing those writes.

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 usage context: wake card chips call it, and it is also directly callable. It also explains that the setting persists until changed or TTL expiry, and that explicit area/project arguments on commit/note/handoff override it. It lacks an explicit when-not-to-use statement, but the alternatives and precedence rules are clear.

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

presenceReading presenceCInspect

Read live Lady Whiskerdown facet presence within the requested window.

NameRequiredDescriptionDefault
toNoDelivery address of a live session, taken from this tool's own facets list. Sends instead of reading. The address is issued by the server and bound to the session that holds it; a session id is not an address and will not be accepted as one.
scopeNoWhich conversations to include. Defaults to work, which withholds personal threads.
messageNoAt most 400 characters, delivered in full in that session's next presence check or memory-read footer, quoted as another session's words. Sending means queued, not confirmed read. Nothing wakes or spawns; quiet sessions are refused and unread messages expire after 30 minutes.
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.
window_minutesNoLive window in minutes. Defaults to 30. Maximum 1440.

TDQS

C2.5/5.0
Behavior2/5

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

Annotations supply only a title, so the description carries the full burden, and it under-delivers: it frames the tool purely as a read while the schema reveals a send mode with queueing semantics, 30-minute message expiry, refusal of quiet sessions, and no wake/spawn behavior. None of that side-effect profile appears in the description, so an agent reading only the prose would not anticipate the mutation path.

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

Conciseness3/5

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

One sentence is admirably short and front-loaded with the verb, so it passes the conciseness test. However, the economy comes at the cost of the tool's second mode and any usage context, so the brevity reads as under-specification rather than precision.

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

Completeness2/5

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

For a five-parameter tool with a dual read/send behavior, no output schema, and no meaningful annotations, a single read-only sentence is not enough. Key facts an agent needs before calling — the send mode, session requirements, delivery guarantees — exist only in the schema, leaving the description incomplete relative to the tool's complexity.

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 coverage is 100% and the parameter descriptions are unusually thorough (address binding, scope defaults, 400-char limit, window default and max), so the schema does the heavy lifting. The description adds only the loose notion of a 'requested window', which maps to `window_minutes` but adds no format or constraint detail beyond the schema.

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

Purpose3/5

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

The description gives a verb+resource ('Read ... presence') within a time window, which is understandable in outline, but the phrasing 'Lady Whiskerdown facet presence' is domain jargon that doesn't tell an agent what data actually comes back, and it silently omits that the same call can send a message via the `to`/`message` parameters. It does not differentiate itself from siblings such as wake, recall, or focus.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus wake, recall, or focus, and no mention of prerequisites such as needing a session id from wake. The only positional hint is 'within the requested window', which is a scope statement, not usage guidance.

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

ranking_comparekit_ranking_compareAInspect

Compare search ranking for a query with and without the recently learned boost. Returns every row whose rank or score changes, with baseline rank, boosted rank, position delta, score delta, sample source, boost window, and units.

NameRequiredDescriptionDefault
tierNoOptional memory tier filter
limitNoMax candidate rows to compare, default 50 and capped by the API at 100
queryYesSearch query to compare over the real caller-scoped memory sample
projectNoOptional project filter
surfaceNoOptional surface filter
categoryNoOptional memory category filter
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations carry only a title, so the description must carry the behavioral load. It does disclose the key filtering behavior ('returns every row whose rank or score changes') and the per-row payload (baseline rank, boosted rank, deltas, sample source, boost window, units), which is genuinely useful. It does not say whether the call is read-only, how expensive it is, or how it behaves when no boost has been learned.

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 sentences with zero filler; the comparison is front-loaded and the return shape follows immediately after. Nothing repeats the name or title.

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?

With no output schema, the description correctly enumerates the returned row fields, and all parameters are covered by the schema. What is missing is the precondition and failure mode (no learned boost, empty sample), which matters for an agent deciding whether the call is meaningful.

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 coverage is 100%, so all seven parameters are already documented in the schema, including the limit cap and the kit_session_id rules. The description adds no meaning beyond that and mentions only 'units', which is not a parameter. Baseline 3 applies.

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?

States a specific verb and resource ('Compare search ranking for a query') plus the exact comparison basis (with vs. without the recently learned boost). No sibling in the list does ranking comparison, so no disambiguation is needed.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is a diagnostic for verifying boost effect, but the description never says when to reach for it versus recall, or what precondition (an existing learned boost / active session from wake) must hold.

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

recallFinding thingsAInspect

Search Lady Whiskerdown's archive. Use it first for anything Lady Whiskerdown should know. Returns the most relevant entries this key can read; cite each one you use as (Lady Whiskerdown:m#N) with its title.

NameRequiredDescriptionDefault
limitNoHow many to return. Leave it unset and the Kit returns the memories that cleared the relevance bar; set it for exactly that many.
queryYesWhat to search for, in natural language
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.

TDQS

A4/5.0
Behavior4/5

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

Annotations carry only a title, so the description bears the full burden and does reasonably well: it discloses the access boundary ("entries this key can read"), the relevance-based result set, and a mandatory citation format agents must follow. It omits whether results are truncated or how ranking is computed, but the read-only nature is clear from "search".

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 sentences, front-loaded with purpose, then usage priority, then the required citation convention. No filler; every clause carries operative information for an agent.

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?

With no output schema, the description usefully sketches the return shape by implying each entry has an identifier (`m#N`) and a title, and it explains the access scope. It leaves the entry payload structure and result truncation unstated, a minor gap for a simple three-parameter search tool.

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 the parameters (`query`, `limit`, `kit_session_id`) are already documented in detail, including the default-vs-explicit behavior of `limit`. The description adds no parameter-level meaning beyond the schema, so the baseline of 3 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?

"Search Lady Whiskerdown's archive" names a specific verb and resource, which rescues the vague name ("recall") and title ("Finding things"). It does not explicitly contrast with others, though "use it first for anything Lady Whiskerdown should know" implicitly separates it from `remember`, `areas`, and `systems`.

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?

"Use it first for anything Lady Whiskerdown should know" gives a clear default-priority rule that tells an agent when to reach for this tool before others. It stops short of stating exclusions or naming the write-path sibling (`remember`) as the alternative for storing rather than retrieving.

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

rememberReading a memoryAInspect

Read a single Lady Whiskerdown memory by id (as returned by recall). No graph or entity enrichment: the receiver endpoint returns the memory itself, scoped to this key.

NameRequiredDescriptionDefault
idYesMemory id (number or m#N as shown by recall), or a linked Kit's cite such as Shiro:m#1234
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations carry only a title, so the description bears the disclosure burden and does add real context: this is a read, results are 'scoped to this key' (an access/visibility constraint), and the receiver endpoint returns no graph or entity enrichment. It does not cover failure behavior for a missing or foreign-key id, which keeps it from a 5.

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 short sentences, both load-bearing, with scope stated first and the exclusion (no enrichment) second. Nothing is repeated from the name or title and no sentence could be dropped without losing information.

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 a two-parameter fetch with a fully documented schema and no output schema, the description supplies the essential context: where the id comes from, that the result is the raw memory scoped to this key, and that no enrichment is applied. It stops short of indicating the memory's shape or not-found behavior, a minor gap given the absence of an output schema.

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 the schema already documents both id (including the m#N and cross-Kit cite forms) and kit_session_id. The description only reinforces that the id originates from recall, adding no syntax or constraint detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource ('Read a single Lady Whiskerdown memory by id') and immediately scopes it against the sibling that produces ids ('as returned by recall'). It also rules out graph/entity enrichment, so an agent can tell this apart from recall or any enrichment variant without opening the schema.

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 implies the intended workflow by tying the id to recall's output, which tells the agent to call recall first for discovery and use this for single-record fetch. It does not explicitly state when NOT to use it (e.g., batch reads or search), but the context is clear enough to select correctly.

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

systemssystemsAInspect

Ask the business systems Kit is connected to (accounting, HR, a shop) live: its own and those of Kits linked to it. Kit's memories hold the history, decisions and who owns what; a system holds today's records. For a question about a customer, a person or an order, recall first, then ask the system for the current figures; recall names the record to ask for when Kit knows them. With nothing it lists the systems; with system, a tool's arguments; with system and tool, it runs that tool. Say when the answer was asked, and never save it as a memory: it will change.

NameRequiredDescriptionDefault
toolNoOne of that system's tools, to run it now. Leave unset to see the tools and what they take.
systemNoA system's reference from the list: `odoo` for this Kit's, `kit-company/odoo` for a linked Kit's.
argumentsNoThe tool's arguments, as its input schema describes.
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.

TDQS

A4.1/5.0
Behavior4/5

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

With only a title annotation, the description carries the behavioral burden and does substantial work: it discloses that returned data is live and volatile ('it will change'), that answers should be timestamped, that results must not be persisted as memories, and that a child/subagent must wake with its own session. Gaps remain around failure modes, permissions, and whether calls are read-only against the external system.

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

Conciseness3/5

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

Purpose is front-loaded, but the prose is packed into long run-on clauses ('its own and those of Kits linked to it', 'recall first, then ask the system for the current figures') that force re-reading. Every idea is relevant, yet the same content could be structured as short mode bullets with far less parsing cost.

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 a multi-mode gateway with a nested `arguments` object and no output schema, the description covers mode dispatch, ordering with recall, volatility, and session requirements. The notable omission is return shape — with no output schema, saying what a system listing or a tool run yields would help an agent plan the follow-up call.

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 coverage is 100%, so baseline is 3; the description exceeds it by explaining the dispatch chain the parameters form — bare call lists systems, `system` alone returns that system's tools and their arguments, `system` plus `tool` executes — which the schema only states piecewise. It does not add format details for `arguments` beyond deferring to the target tool's schema.

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 concrete verb and resource: query live records held by connected business systems (accounting, HR, a shop), including systems of linked Kits. It also distinguishes itself from the sibling `recall` by contrasting 'history, decisions' with 'today's records'. The name 'systems' alone is vague, and the three modes (list systems / list a system's tools / run a tool) are only spelled out later, but the overall purpose is recoverable.

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 gives explicit sequencing against a named sibling: 'recall first, then ask the system for the current figures', and says recall names the record to ask for. Mode selection is fully enumerated: nothing lists systems, `system` shows a tool's arguments, `system`+`tool` runs it. It also includes a negative instruction — never save the answer as a memory — which is exactly the when-not guidance an agent needs.

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

wakeGetting up to speedAInspect

Open Lady Whiskerdown, an archive you can question. Call this first in every new chat (VS Code/Copilot, Cursor, Claude Code, Codex), before the first substantive answer. It returns what Lady Whiskerdown is (you_are), which knowledge areas this key can see, which tools this key may use, and any rules its keeper has set. Lady Whiskerdown has no persona: keep your own identity and refer to it in the third person. For anything Lady Whiskerdown should know, call recall first instead of using general model knowledge.

NameRequiredDescriptionDefault
scopeNo
kit_session_idNoYour own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations supply only a title, so the description carries the behavioral burden and does disclose meaningful traits: what gets returned, that there is no persona to adopt, that identity must be preserved and referred to in the third person, and that the session must be woken per-agent. It does not state side effects, idempotency, or whether a session is allocated server-side — a notable gap for a bootstrap call with zero safety annotations.

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?

The imperative 'Call this first' and the payload enumeration are front-loaded, so the agent hits the critical instruction immediately. The host list (VS Code/Copilot, Cursor, Claude Code, Codex) is a dense enumeration that could be compressed, but every remaining sentence carries distinct information about identity handling or the recall alternative.

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?

With no output schema, the description does the needed work by describing the shape of the response (identity, visible areas, permitted tools, keeper rules). Combined with the schema's session-ID guidance, an agent can call it correctly on first turn. The unexplained `scope` parameter is the main completeness hole.

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

Parameters2/5

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

Schema coverage is only 50%: `kit_session_id` is documented in the schema itself (including the subagent rule) and the description adds nothing to it, while `scope` (work/personal/all) is neither described in the schema nor mentioned anywhere in the description. An agent cannot tell from either source what `scope` changes about the returned knowledge areas or tool list, and the description makes no attempt to compensate for that gap.

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?

States a concrete action (open Lady Whiskerdown) and enumerates the return payload (`you_are`, visible knowledge areas, permitted tools, keeper rules), which tells an agent exactly what a bootstrap call yields. It explicitly distinguishes itself from `recall` and implicitly from `areas`/`systems` by saying those are reported here. The metaphor 'an archive you can question' is slightly loose, but the concrete payload list removes ambiguity.

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 an unusually explicit trigger: call first in every new chat, before the first substantive answer, across named hosts. It also names the alternative for knowledge lookups ('call recall first instead of using general model knowledge'). There is no explicit when-not-to-call guidance (e.g. mid-conversation re-wakes or repeat calls in the same session), which keeps it below 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. 8 tool updates
    • Changedareas1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedfocus1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedpresence3 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / window_minutes / maximum
        Added value: +9007199254740991
      • addedInput schema / properties / window_minutes / minimum
        Added value: +-9007199254740991
    • Changedranking_compare1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedrecall1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedremember1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedsystems2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / arguments / propertyNames
        Added value: +{
        +  "type": "string"
        +}
    • Changedwake1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
  2. 1 tool update
    • Changedremember1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Memory id (number or m#N as shown by recall), or a linked Kit's cite such as kit-company:m#1234"New value: +"Memory id (number or m#N as shown by recall), or a linked Kit's cite such as Shiro:m#1234"
  3. 1 tool update
    • Addedsystems
  4. 2 tool updates
    • Changedrecall1 field changed
      • changedInput schema / properties / limit / description
        Previous value: -"Max results (default 10)"New value: +"How many to return. Leave it unset and the Kit returns the memories that cleared the relevance bar; set it for exactly that many."
    • Changedremember1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Memory id (number or m#N as shown by recall)"New value: +"Memory id (number or m#N as shown by recall), or a linked Kit's cite such as kit-company:m#1234"
  5. 7 tool updates
    • Changedareas2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / kit_session_id
        Added value: +{
        +  "description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.",
        +  "maxLength": 160,
        +  "minLength": 8,
        +  "pattern": "^[A-Za-z0-9:_-]+$",
        +  "type": "string"
        +}
    • Changedfocus1 field changed
      • addedInput schema / properties / kit_session_id
        Added value: +{
        +  "description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.",
        +  "maxLength": 160,
        +  "minLength": 8,
        +  "pattern": "^[A-Za-z0-9:_-]+$",
        +  "type": "string"
        +}
    • Changedpresence1 field changed
      • addedInput schema / properties / kit_session_id
        Added value: +{
        +  "description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.",
        +  "maxLength": 160,
        +  "minLength": 8,
        +  "pattern": "^[A-Za-z0-9:_-]+$",
        +  "type": "string"
        +}
    • Changedranking_compare1 field changed
      • addedInput schema / properties / kit_session_id
        Added value: +{
        +  "description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.",
        +  "maxLength": 160,
        +  "minLength": 8,
        +  "pattern": "^[A-Za-z0-9:_-]+$",
        +  "type": "string"
        +}
    • Changedrecall1 field changed
      • addedInput schema / properties / kit_session_id
        Added value: +{
        +  "description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.",
        +  "maxLength": 160,
        +  "minLength": 8,
        +  "pattern": "^[A-Za-z0-9:_-]+$",
        +  "type": "string"
        +}
    • Changedremember1 field changed
      • addedInput schema / properties / kit_session_id
        Added value: +{
        +  "description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.",
        +  "maxLength": 160,
        +  "minLength": 8,
        +  "pattern": "^[A-Za-z0-9:_-]+$",
        +  "type": "string"
        +}
    • Changedwake1 field changed
      • addedInput schema / properties / kit_session_id
        Added value: +{
        +  "description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.",
        +  "maxLength": 160,
        +  "minLength": 8,
        +  "pattern": "^[A-Za-z0-9:_-]+$",
        +  "type": "string"
        +}
  6. 6 tool updates
    • Removedcapture
    • Removedcommit
    • Removedhandoff
    • Removednote
    • Changedpresence2 fields changed
      • addedInput schema / properties / message
        Added value: +{
        +  "description": "At most 400 characters, delivered in full in that session's next presence check or memory-read footer, quoted as another session's words. Sending means queued, not confirmed read. Nothing wakes or spawns; quiet sessions are refused and unread messages expire after 30 minutes.",
        +  "type": "string"
        +}
      • addedInput schema / properties / to
        Added value: +{
        +  "description": "Delivery address of a live session, taken from this tool's own facets list. Sends instead of reading. The address is issued by the server and bound to the session that holds it; a session id is not an address and will not be accepted as one.",
        +  "type": "string"
        +}
    • Addedranking_compare
  7. 2 tool updates
    • Changedcommit1 field changed
      • changedInput schema / properties / project / description
        Previous value: -"Project scope: 'simvida', 'routr', etc. Resolved against project registry (aliases rewritten). Omit for cross-project."New value: +"Project scope: 'a client project', 'routr', etc. Resolved against project registry (aliases rewritten). Omit for cross-project."
    • Changednote1 field changed
      • changedInput schema / properties / title / description
        Previous value: -"Short imperative — what is happening right now. e.g. 'drafting WIP schema', 'blocked on Peter's call about cadence', 'resuming after lunch'."New value: +"Short imperative — what is happening right now. e.g. 'drafting WIP schema', 'blocked on a decision about cadence', 'resuming after lunch'."
  8. 4 tool updates
    • Addedcapture
    • Addedcommit
    • Addedhandoff
    • Addednote
  9. 4 tool updates
    • Removedcapture
    • Removedcommit
    • Removedhandoff
    • Removednote
  10. 7 tool updates
    • Changedcapture7 fields changed
      • addedInput schema / properties / contributor_model / description
        Added value: +"Which model produced this transcript (e.g. 'gpt-4o', 'gemini-2.5-pro', 'claude-sonnet-4', 'kit'). Written into each draft's written_by for attribution."
      • addedInput schema / properties / max_drafts / default
        Added value: +5
      • changedInput schema / properties / max_drafts / description
        Previous value: -"Default 5."New value: +"Cap on candidates Sonnet extracts (default 5)"
      • addedInput schema / properties / project / description
        Added value: +"Project to tag drafts with (resolved against registry)"
      • addedInput schema / properties / session_id / description
        Added value: +"Session identifier for provenance"
      • changedInput schema / properties / source / description
        Previous value: -"Surface label such as cursor, vscode-copilot, claude-code."New value: +"Surface slug for provenance. Defaults to this MCP server's detected surface, e.g. claude-code, codex, cursor, or vscode."
      • changedInput schema / properties / transcript / description
        Previous value: -"Conversation transcript. Plaintext with [user]/[assistant] markers works."New value: +"Conversation transcript. Plaintext with [user]/[assistant] speaker markers works; JSONL from Claude Code is auto-detected."
    • Changedcommit17 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Registered category slug."New value: +"Category slug. Must be registered in the categories table; unknown slugs are rejected by FK. Common: decisions, patterns, sessions, gotchas, preferences, ux, relationship, feedback, noticing, reflection, plans, intention, handoff, reference, research. Use intention for a small self-chosen direction that should persist across sessions; its content should name why, next move, action boundary, and closing evidence, with status in tags. See GET /categories/ for the full registered list."
      • addedInput schema / properties / content / description
        Added value: +"Full content — be specific and detailed"
      • addedInput schema / properties / dedup_threshold / description
        Added value: +"Override the default near-duplicate similarity threshold (default 0.92)."
      • addedInput schema / properties / project / description
        Added value: +"Project scope: 'simvida', 'routr', etc. Resolved against project registry (aliases rewritten). Omit for cross-project."
      • addedInput schema / properties / scope / default
        Added value: +"work"
      • addedInput schema / properties / scope / description
        Added value: +"Scope: 'work' (default, business/code/product, visible in brag mode), 'personal' (life/health/family/identity, hidden from work views), 'general' (applies to both, identity/relationship memories)"
      • addedInput schema / properties / skip_dedup / default
        Added value: +false
      • addedInput schema / properties / skip_dedup / description
        Added value: +"Skip the near-duplicate check. Use when you know this overlap is intentional."
      • addedInput schema / properties / source_commit
        Added value: +{
        +  "description": "Git commit sha (optional provenance)",
        +  "type": "string"
        +}
      • addedInput schema / properties / source_paths / description
        Added value: +"Comma-separated file paths this memory relates to (optional provenance)"
      • addedInput schema / properties / source_session / description
        Added value: +"Session id this memory came from (optional provenance)"
      • addedInput schema / properties / surface / description
        Added value: +"Surface axis per #12747. Default pulls from the category's default_surface (canonical for decisions/patterns/preferences/relationship/etc, operational for handoff/plans/task/monologue, trace for wip/trajectory/voice-score/biometric). Override only when this row deviates from its category's default."
      • changedInput schema / properties / tags / description
        Previous value: -"Comma-separated tags."New value: +"Comma-separated tags, e.g. 'chart,d3,projection'"
      • addedInput schema / properties / tier / default
        Added value: +"recall"
      • addedInput schema / properties / tier / description
        Added value: +"Memory tier: core (always loaded, 'soul'), recall (searchable, decays, 'short-term'), archival (consolidated, 'long-term')"
      • addedInput schema / properties / title / description
        Added value: +"Short descriptive title"
      • addedInput schema / properties / written_by / description
        Added value: +"Who wrote this memory: 'kit', 'peter', 'dream-consolidator', etc."
    • Addedfocus
    • Changedhandoff7 fields changed
      • changedInput schema / properties / content / description
        Previous value: -"What was done, current state, blockers, and next useful action."New value: +"What was done, the current state, blockers, and the next useful action. Write it for whoever picks up next, including yourself."
      • addedInput schema / properties / project / description
        Added value: +"Project scope, if applicable. Omit for cross-project."
      • addedInput schema / properties / session_id / description
        Added value: +"Session id to attach this handoff to."
      • changedInput schema / properties / surface / description
        Previous value: -"The client/surface writing this, e.g. cursor, vscode-copilot, claude-code."New value: +"The client/surface writing this, e.g. cursor, vscode-copilot, claude-code. Defaults to this server's detected surface; remote callers should pass their own."
      • changedInput schema / properties / tags / description
        Previous value: -"Comma-separated extra tags."New value: +"Extra comma-separated tags."
      • changedInput schema / properties / title / description
        Previous value: -"Short handoff title."New value: +"Short handoff title. e.g. 'shipped the gate photo, surfaces audit next'."
      • changedInput schema / required
        Previous value: -[
        -  "title",
        -  "content",
        -  "surface"
        -]New value: +[
        +  "title",
        +  "content"
        +]
    • Changednote10 fields changed
      • addedInput schema / properties / collab / description
        Added value: +"Collaboration slug to scope this WIP, e.g. 'studio-conductor-v1'. Writes a collab:<slug> tag."
      • changedInput schema / properties / content / description
        Previous value: -"Concrete note: current state, what changed, what is next."New value: +"The scribble. Be concrete: what state are you in, what's next, what's loaded in working memory. A colleague who walks up mid-thread should be able to pick up from this."
      • changedInput schema / properties / kind / description
        Previous value: -"Defaults to checkpoint."New value: +"Operational checkpoint type. Defaults to checkpoint."
      • addedInput schema / properties / project / description
        Added value: +"Project scope, if applicable. Omit for cross-project."
      • addedInput schema / properties / session_id / description
        Added value: +"Session id to attach this checkpoint to. Defaults to this MCP process session."
      • addedInput schema / properties / supersedes / description
        Added value: +"Checkpoint id of a prior WIP entry this replaces. Optional — accumulation is fine without it."
      • changedInput schema / properties / surface / description
        Previous value: -"The client/surface writing this, e.g. cursor, vscode-copilot, claude-code."New value: +"Which surface you're on: 'claude-code', 'codex', 'forest', 'ollama', etc. Defaults to this server's detected surface; auto-tagged so cross-surface readers know the source."
      • changedInput schema / properties / tags / description
        Previous value: -"Comma-separated extra tags."New value: +"Extra comma-separated tags."
      • changedInput schema / properties / title / description
        Previous value: -"Short label for the checkpoint."New value: +"Short imperative — what is happening right now. e.g. 'drafting WIP schema', 'blocked on Peter's call about cadence', 'resuming after lunch'."
      • changedInput schema / required
        Previous value: -[
        -  "title",
        -  "content",
        -  "surface"
        -]New value: +[
        +  "title",
        +  "content"
        +]
    • Changedpresence1 field changed
      • addedInput schema / properties / scope
        Added value: +{
        +  "description": "Which conversations to include. Defaults to work, which withholds personal threads.",
        +  "enum": [
        +    "work",
        +    "personal",
        +    "general",
        +    "all"
        +  ],
        +  "type": "string"
        +}
    • Changedremember2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Memory id"New value: +"Memory id (number or m#N as shown by recall)"
      • changedInput schema / properties / id / type
        Previous value: -"number"New value: +[
        +  "number",
        +  "string"
        +]

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Virtual Infinite Context for Agents and LLMs - maintains a continuous rolling context window, surfacing relevant memories while respecting token budgets.
    6
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local-first, source-grounded memory for AI agents, with citations, bitemporal history, review-gated corrections, and MCP tools for search and recall.
    26 PyPI
    3
    Apache 2.0
  • F
    license
    Not graded
    quality
    B
    maintenance
    A long-term memory system built for AI Agents. Agent wakes up already knowing who he is, not querying "who am I?" every session. Every turn calling back accurate memory context. Achieving accurate memory hits while also preventing memory from expanding at scale. No compression, no forgetting.
    41
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.