# Search Memory [Health: Active]

**Category:** 🧠 Knowledge & Memory  
**Repository:** https://github.com/kefyusuf/search-memory-mcp  
**GitHub Stars:** 1  
**npm Downloads (last month):** 1255  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/search-memory

## Description
Free web search and long-term memory for AI assistants. No API keys; data stays local.

## Tools
Capabilities this server exposes over MCP:

- **web_search** — Searches the web and returns ranked results. Supports `strategy` (`fallback`/`aggregate`/`auto`), `domain`, `from_date`/`to_date`, `format` (`text`/`json`), and `deep=true` for source-backed answers.
- **fetch_content** — Fetches a URL and returns clean Markdown with content caching, charset handling, GitHub Raw fast paths, RSS feed extraction, and Playwright fallback.
- **research** — Researches a question in one call: checks the local knowledge base, searches the web, reads the top pages (`max_sources`, default 3), answers with citations from both, and adds the pages it read to the knowledge base (`index=false` to skip; sources already indexed are not added again).
- **server_status** — Returns provider availability, cache stats, knowledge index stats, memory stats, entity graph stats, recent search traces, browser state, routing profile metadata, feature flags, and uptime.
- **ingest_document** — Chunks a document and indexes it into the local knowledge base (FTS + vectors) and entity graph. Pass `content`, or `path` to a local PDF, DOCX, EPUB, HTML or text file inside `INGEST_ALLOWED_DIRS`.
- **index_url** — Fetches a URL and indexes its Markdown into the local knowledge base and entity graph.
- **search_index** — Hybrid keyword + semantic search over the local knowledge base; returns chunks with source citations. Supports `format: "json"`.
- **list_index** — Lists documents stored in the local knowledge base.
- **remember** — Stores a short fact or note in session memory.
- **recall** — Searches or lists session memory notes.
- **forget** — Deletes a session memory note by id.
- **find_related** — Explores the entity graph: related documents and co-occurring entities for an entity name.

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

```json
"mcpServers": {
  "search-memory": {
    "command": "npx",
    "args": ["-y","search-memory-mcp@latest"]
  }
}
```

## Documentation

## What Search Memory MCP server does

Search Memory MCP server combines web research with local persistence. An MCP client can search the web, fetch pages as cleaned Markdown, save notes for later sessions, and build a private index of pages and documents. Indexed material can be searched with keyword and semantic retrieval, while answers can include citations to the relevant sources.

The server supports several web search scrapers, including DuckDuckGo, Bing, Brave, Google, Yahoo, and Marginalia. It can also use a SearXNG instance or the Brave Search API when configured. Search results are deduplicated across providers, and provider fallback helps continue a request when a provider fails or returns no results.

## How it works

Web pages are fetched over HTTP when possible. GitHub Raw and RSS receive dedicated fast paths, while Playwright Chromium handles pages that need a browser. PDF, DOCX, and EPUB responses can be converted to text without opening a browser, subject to a 25 MB document limit.

The local knowledge base stores document chunks in SQLite. Retrieval combines SQLite FTS5 keyword search with sqlite-vec semantic search and fuses the results using Reciprocal Rank Fusion. If embeddings are unavailable, retrieval falls back to FTS. An entity graph supports finding related documents and co-occurring entities.

Session memory is separate from the document index. The remember, recall, and forget tools support topics, tags, and session scoping. The research operation can check existing indexed material, search the web, read selected pages, produce a cited answer, and retain the pages for later use. Results expose publication and fetch or indexing dates when those dates are available.

## Setup and configuration

The quickest installation uses Node.js and an MCP client configuration with `npx -y search-memory-mcp@latest`. The documented runtime range is Node.js 20.9 through 25, with Node.js 24 as the development baseline. A local installation uses `npm install` followed by `npm run build`; the built server can then be launched with Node or its binary entrypoint.

Docker is an alternative when the host Node.js version is unsuitable. The published image includes Node, the SQLite module, and Chromium. Named volumes preserve the cache, memory, indexed content, and downloaded models. Local folders must be mounted explicitly before ingesting files from them, and `INGEST_ALLOWED_DIRS` can restrict the folders available to document ingestion.

Default web search does not require an API key. Optional configuration includes provider selection, rate limits, reranking, cross-lingual processing, tracing, and SearXNG or Brave API access. Playwright Chromium downloads during installation or first use, and model-backed features download local model files on their first invocation.

## Tools and capabilities

Available operations include web search, page fetching, URL indexing, document ingestion, index search, index listing, related-document lookup, and session memory management. Search supports domain and date filters, structured JSON output, query rewriting, optional multi-query expansion, caching, and deep-search answers with per-source citations.

The server records provider attempts and can expose execution stages, timings, and cache information. Recent searches appear in server status, while `TRACE_SEARCHES=true` enables full search traces. A retrieval evaluation command reports recall, precision, and mean reciprocal rank.

## Limitations and notes

Search Memory MCP server requires network access during installation and for web research. Browser-dependent requests may take longer on the first run because Chromium may need to download. Model-backed features can also have a slow first request while local model files are downloaded.

Fetched web content is treated as data rather than instructions, and hidden text or invisible characters are removed. Fetching and URL indexing block localhost and private network targets to reduce SSRF risk. Token-bucket limits apply to search and fetch operations.

The default search path avoids required API keys, but optional providers may need credentials or a configured endpoint. Local storage keeps data on the machine running the server; Docker users should use persistent volumes if memory and indexed content must survive container removal.

_Full upstream README: https://allmcps.com/mcp/search-memory/readme_

