Continuity for agents: a live memory you can read and cite right now, outliving the context window.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Public shared read-only bearer key, deliberately published. Current value is always printed at https://demo.kit-project.com/llms.txt (it may rotate).
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
List the knowledge areas in this Lady Whiskerdown.
Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
List the knowledge areas in this Lady Whiskerdown.
| Argument | Type | Description |
|---|---|---|
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| area | string | Knowledge-area slug for new writes. Empty string or omitted clears to General (no area routing). |
| project | string | Project slug for new writes. Empty string clears. |
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"area": {
"type": "string",
"description": "Knowledge-area slug for new writes. Empty string or omitted clears to General (no area routing)."
},
"project": {
"type": "string",
"description": "Project slug for new writes. Empty string clears."
},
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
}
},
"additionalProperties": false
}Read live Lady Whiskerdown facet presence within the requested window.
| Argument | Type | Description |
|---|---|---|
| to | string | 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. |
| scope | string | Which conversations to include. Defaults to work, which withholds personal threads. |
| message | string | 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. |
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
| window_minutes | integer | Live window in minutes. Defaults to 30. Maximum 1440. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"to": {
"type": "string",
"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."
},
"scope": {
"enum": [
"work",
"personal",
"general",
"all"
],
"type": "string",
"description": "Which conversations to include. Defaults to work, which withholds personal threads."
},
"message": {
"type": "string",
"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."
},
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
},
"window_minutes": {
"type": "integer",
"description": "Live window in minutes. Defaults to 30. Maximum 1440."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| tier | string | Optional memory tier filter |
| limit | number | Max candidate rows to compare, default 50 and capped by the API at 100 |
| query* | string | Search query to compare over the real caller-scoped memory sample |
| project | string | Optional project filter |
| surface | any | Optional surface filter |
| category | string | Optional memory category filter |
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"tier": {
"type": "string",
"description": "Optional memory tier filter"
},
"limit": {
"type": "number",
"description": "Max candidate rows to compare, default 50 and capped by the API at 100"
},
"query": {
"type": "string",
"description": "Search query to compare over the real caller-scoped memory sample"
},
"project": {
"type": "string",
"description": "Optional project filter"
},
"surface": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Optional surface filter"
},
"category": {
"type": "string",
"description": "Optional memory category filter"
},
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| limit | number | How many to return. Leave it unset and the Kit returns the memories that cleared the relevance bar; set it for exactly that many. |
| query* | string | What to search for, in natural language |
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "How many to return. Leave it unset and the Kit returns the memories that cleared the relevance bar; set it for exactly that many."
},
"query": {
"type": "string",
"description": "What to search for, in natural language"
},
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| id* | number | string | Memory id (number or m#N as shown by recall), or a linked Kit's cite such as Shiro:m#1234 |
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": [
"number",
"string"
],
"description": "Memory id (number or m#N as shown by recall), or a linked Kit's cite such as Shiro:m#1234"
},
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| tool | string | One of that system's tools, to run it now. Leave unset to see the tools and what they take. |
| system | string | A system's reference from the list: `odoo` for this Kit's, `kit-company/odoo` for a linked Kit's. |
| arguments | object | The tool's arguments, as its input schema describes. |
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tool": {
"type": "string",
"description": "One of that system's tools, to run it now. Leave unset to see the tools and what they take."
},
"system": {
"type": "string",
"description": "A system's reference from the list: `odoo` for this Kit's, `kit-company/odoo` for a linked Kit's."
},
"arguments": {
"type": "object",
"description": "The tool's arguments, as its input schema describes.",
"additionalProperties": {}
},
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| scope | string | |
| kit_session_id | string | Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"scope": {
"enum": [
"work",
"personal",
"all"
],
"type": "string"
},
"kit_session_id": {
"type": "string",
"pattern": "^[A-Za-z0-9:_-]+$",
"maxLength": 160,
"minLength": 8,
"description": "Your own session ID from wake; reuse for this conversation. A child or subagent must wake separately, without its parent's ID."
}
},
"additionalProperties": false
}