Skip to main content
Glama
kirill-sviridov

handoff-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HANDOFF_VAULTNoPath to the vault directory. Defaults to ~/.handoff-mcp/vault.
HANDOFF_PROJECTNoProject name for scoping memory.
HANDOFF_EMBEDDERNoEmbedding backend: hashing, local, or openai. Default: hashing.
HANDOFF_SEMANTICNoSet to 1 to enable semantic recall layer. Default: not set (off).
HANDOFF_AUTO_SYNCNoSet to 1 to automatically sync memory across devices.
HANDOFF_LLM_MODELNoSet to enable the consolidate tool (e.g., gpt-4o-mini).
HANDOFF_EMBED_MODELNoModel name for embeddings. Default: Qwen/Qwen3-Embedding-0.6B for local backend.
HANDOFF_EMBED_API_KEYNoAPI key for OpenAI-compatible embedding endpoint.
HANDOFF_EMBED_BASE_URLNoBase URL for OpenAI-compatible embedding endpoint.
HANDOFF_EMBED_TRUST_REMOTE_CODENoSet to 1 to trust remote code for embedding models that require it.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
log_eventA

Record a progress signal for the current work session.

Call this proactively as work happens — every time you set or change the goal, make a non-trivial decision (and why), hit a dead-end worth not repeating, touch an important file, surface an open question, or decide the next step.

Keep each event ATOMIC and concise: one item per call, 1-2 sentences. Log several small events rather than dumping a whole session summary into one — the brief is meant to stay skimmable. Reference durable notes inline as [[Entity]] so they link in the brief's "Related knowledge".

This is how the next session inherits your context. Returns the new event id (use it later in supersedes). If supersedes_query retired a prior event, a second line names which id was retired (or notes that none matched), so the retraction is auditable.

get_briefA

Load the prioritised hand-off brief for a project.

Call this at the START of a session, before doing anything else, to learn where the previous session left off: the goal, the next step, key decisions and their rationale, dead-ends already ruled out, and open questions. Retracted decisions are omitted. This is a curated brief, not a raw context dump.

search_memoryA

Search memory across sessions and projects.

Call this whenever the user references past work, a prior decision, or ANOTHER project — e.g. "in one of my projects we did X", "how did we solve Y before", "what did we decide about Z", "last time". Use scope='all' (the default) to recall across every project; scope='current' to stay in this one. Returns matching past events with their project, content, and id — the id can be fed straight into log_event's supersedes to retire a decision you just found to be outdated.

checkpointA

Close out the current session and produce its hand-off brief.

Call this at the END of a session, or when the user signals they're stopping or switching context. It finalises the session note and returns the brief the next session will read.

note_entityA

Record durable, long-lived project knowledge on an entity note.

Use this (rather than log_event) for facts that outlive a single session: the system's architecture, coding conventions, what a component does, or standing open questions. These notes are linked from sessions via [[wiki-links]] and form the project's knowledge graph. Returns the entity name.

consolidateA

Compress old finished sessions into durable entity notes ('sleep').

Call this when a project's session log has grown large and you want to reclaim space while keeping the lasting knowledge: it distils old sessions into the durable entity notes and archives the originals. Requires a configured LLM (HANDOFF_LLM_MODEL); it is the only step that uses one.

syncA

Sync this device's memory vault with its private git remote.

Use when the user wants their memory on another device, or to push/pull now. If the vault isn't configured yet, this returns setup instructions — relay them and ask the user for a private repo URL, then call again with remote_url. Once configured, a bare call pulls remote work, commits local changes, and pushes. Safe to call repeatedly.

Prompts

Interactive templates invoked by user choice

NameDescription
resumeA ready-to-send prompt that primes a new session with the brief.

Resources

Contextual data attached and managed by the client

NameDescription
brief_resourceThe current project's hand-off brief, as a readable MCP resource.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kirill-sviridov/handoff-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server