# tether [Health: Active]

**Category:** 🗄️ Databases  
**Repository:** https://github.com/sidyellur/tether  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/tether

## Description
Local-first agent memory over SQLite: remember, recall, link, forget. Degrades, never fails.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "tether": {
    "command": "uvx",
    "args": ["tether-memory"]
  }
}
```

## Documentation

## What the tether MCP server does

tether provides a shared memory layer for agents that communicate through MCP. Memories can store facts about a user, project decisions, preferences, references, and other durable notes. The core operations are `remember`, `recall`, `link`, and `forget`; enabling crystallization adds `dismiss_cluster` for reflection control rather than ordinary memory storage.

The tether MCP server keeps data in SQLite by default and exposes it to any compatible agent. A compact boot index is loaded at session start, giving the agent a one-line-per-memory view without requiring an initial search. Memories include identifiers, types, titles, bodies, tags, and update timestamps. Recall results also include a `via` receipt describing why a result was returned.

## How it works

Writes use upsert behavior to reduce near-duplicate records. Recall uses SQLite FTS5 over titles, bodies, and tags, with BM25 ranking and English stemming enabled by default. Optional semantic search adds local static embeddings, while the associative layer can use explicit links, co-recall history, and semantic neighbors to find related memories. Each layer is additive and can fall back to keyword recall when unavailable.

When project awareness is active, the project name comes from `CLAUDE_PROJECT_DIR` or the `TETHER_PROJECT` override. Work-related memories can receive a `proj:<name>` tag automatically, and project matches receive a modest ranking preference. User memories remain global. Parallel memory operations are designed to return atomic, correctly reported results.

## Setup and configuration

Python 3.10 or newer is required on Linux, macOS, or Windows. Install the package with `pip install tether-memory`, or run it through `uvx tether-memory`. Claude Code can register the command as an MCP server. The default database path is `~/.local/share/tether/memory.db`; Windows uses `%LOCALAPPDATA%\\tether\\memory.db`. `TETHER_DB` overrides the path, and `XDG_DATA_HOME` is honored on every platform.

The tether MCP server needs no environment variables for local-only use. Optional project settings include `TETHER_PROJECT`, where `off` disables project awareness. For sync, install the `sync` extra and set `TETHER_SYNC_URL` plus `TETHER_SYNC_TOKEN` for a Turso or libSQL database. `TETHER_SYNC_READ_INTERVAL` controls read-side pulls, and `TETHER_DEVICE_ID` identifies the device recorded with memories.

## Tools and capabilities

- `remember`: create or update durable notes.
- `recall`: search memories using keyword, optional semantic, and associative retrieval.
- `link`: create relationships between memories.
- `forget`: remove memories, with synchronized tombstones when applicable.
- `dismiss_cluster`: control crystallization reflections when that feature is enabled.
- Boot index: surface a compact memory list at session startup.
- Project-aware tagging and ranking for supported project environments.
- Optional embedded-replica sync with a hosted Turso/libSQL primary.

## Limitations and notes

Sync is optional and uses a single-primary design. Writes normally propagate to the hosted primary, while replicas pull updates. If the backend is unavailable, the local database continues serving requests. Writes made during degraded sync remain only on that device and are not merged automatically later. Reads may trigger debounced pulls, but a slow backend does not block the current local recall.

With associative recall enabled on a replica, searches can generate additional writes for learned co-recall relationships and may require extra network round trips. Set `TETHER_ASSOC=0` when read-only recall is preferred. FTS5 stemming is English-specific; it can be disabled with `TETHER_FTS_STEMMING`.

_Full upstream README: https://allmcps.com/mcp/tether/readme_

