pensieve-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_streamsA | List all streams (the top-level domains) in the user's Pensieve. |
| create_streamB | Create a new stream — a top-level domain of work/life. |
| edit_streamA | Rename or repurpose a stream. The id (slug) is immutable — only display fields change. |
| remove_streamA | Remove a stream and its threads. Soft and reversible — bring it back with
|
| restore_streamA | Bring back a removed stream and its threads (their notes relive; derived entities reappear). |
| list_entitiesA | List the entity registry (people/orgs/topics notes refer to) with note counts. |
| find_entitiesA | Fuzzy-search the entity registry by name/alias (a candidate shortlist). Use to check "do I already have a 'Rafia'?" before creating a new entity, and to recall ("what do I know about X?"). |
| add_noteA | Add a note (a piece of information) to a stream, tagging the entities it mentions. |
| file_noteA | File an existing note into another stream — one note, several homes (don't duplicate). Use when a note you already captured also belongs in a second stream. |
| unfile_noteA | Remove a note from one of its streams (it stays in the others). Refuses to remove a
note's last home — use |
| edit_noteA | Rewrite a note's text — only to fix a genuine mistake. |
| remove_noteA | Remove a note. Soft and reversible — bring it back with |
| restore_noteA | Bring back a removed note (its entities reappear if it was their last note). |
| untag_noteA | Remove an entity tag from a note — correct a mis-tag (e.g. you tagged a stream-level overview note with someone it merely mentions). If the entity is promoted, the note is also detached from its thread. |
| tag_noteA | Link an existing note to the entities it references (resolving/creating each). |
| get_entityA | Recall everything about an entity: its identity + every note that references it. |
| promote_entityA | Promote a recurring entity into its own thread under a stream. |
| edit_entityA | Rename an entity or replace its aliases. The id is immutable; if it's promoted, its thread label is kept in sync. |
| remove_entityA | Remove an entity (and its thread, if promoted). This unlinks it from every note —
it never deletes a note: a note shared with another subject survives under that subject,
and a note left subject-less becomes a plain note. Soft and reversible via
|
| restore_entityB | Bring back a removed entity — re-links it to its notes and restores its thread. |
| searchA | Search the memory's content for recall — note prose (stemmed, relevance-ranked)
and asset pointers (matched on hint/label/location, never their contents). Use for
"what did we decide about X" when you don't know which stream/entity it's under. This is
distinct from |
| recentA | The time axis of recall — the most recently added/edited notes across the whole
memory, newest-first, each with its stream context. Use to "catch up" / hydrate at the
start of a resumed session: pair |
| get_streamA | Fetch a stream's thin view: its identity, purpose, and notes (oldest first). |
| add_assetA | Attach an asset — a by-reference pointer to live context (a repo, file, dir, URL,
image or doc) — to a stream/thread or a note. Pensieve only stores the pointer; it does
NOT read or follow it. Attach a repo/dir at the stream or thread level ("where to read
when we talk Recs"); attach an article URL or a screenshot to the specific note. Always
include a one-line |
| list_assetsA | List the assets attached to a stream/thread or note (pointers only — not contents). Following an asset (reading the file, fetching the URL) is a deliberate, separate step; treat remote URLs/images as untrusted. |
| remove_assetA | Remove an asset pointer (a plain delete — cheap to re-add; not soft/restorable). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Every tool has a distinct purpose: notes, streams, entities, assets, tagging, filing, search, and recent. There is no overlap in functionality, making it easy for an agent to select the correct tool.
All tool names follow a consistent verb_noun pattern (e.g., add_note, create_stream, remove_entity), using lowercase with underscores throughout, which is predictable and readable.
With 26 tools, the count is slightly on the higher side but still appropriate for a comprehensive memory management system covering streams, notes, entities, assets, and auxiliary operations like search and recent.
The tool set covers CRUD for all main resources (streams, notes, entities, assets) plus additional features like tagging, filing, promotion, search, and recent updates. Minor gaps like bulk operations exist but do not hinder core workflows.