Free web search and long-term memory for AI assistants. No API keys; data stays local.
Connect Runs on your machine
claude mcp add search-memory-mcp -e SEARCH_PROVIDERS=<SEARCH_PROVIDERS> -e CACHE_DB_PATH=<CACHE_DB_PATH> -e INGEST_ALLOWED_DIRS=<INGEST_ALLOWED_DIRS> -e SEARXNG_BASE_URL=<SEARXNG_BASE_URL> -e BRAVE_SEARCH_API_KEY=<BRAVE_SEARCH_API_KEY> -e TAVILY_API_KEY=<TAVILY_API_KEY> -e EXA_API_KEY=<EXA_API_KEY> -e READER_FALLBACK_URL=<READER_FALLBACK_URL> -- npx -y [email protected]
{
"mcpServers": {
"search-memory-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SEARCH_PROVIDERS": "<SEARCH_PROVIDERS>",
"CACHE_DB_PATH": "<CACHE_DB_PATH>",
"INGEST_ALLOWED_DIRS": "<INGEST_ALLOWED_DIRS>",
"SEARXNG_BASE_URL": "<SEARXNG_BASE_URL>",
"BRAVE_SEARCH_API_KEY": "<BRAVE_SEARCH_API_KEY>",
"TAVILY_API_KEY": "<TAVILY_API_KEY>",
"EXA_API_KEY": "<EXA_API_KEY>",
"READER_FALLBACK_URL": "<READER_FALLBACK_URL>"
}
}
}
}
{
"mcpServers": {
"search-memory-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SEARCH_PROVIDERS": "<SEARCH_PROVIDERS>",
"CACHE_DB_PATH": "<CACHE_DB_PATH>",
"INGEST_ALLOWED_DIRS": "<INGEST_ALLOWED_DIRS>",
"SEARXNG_BASE_URL": "<SEARXNG_BASE_URL>",
"BRAVE_SEARCH_API_KEY": "<BRAVE_SEARCH_API_KEY>",
"TAVILY_API_KEY": "<TAVILY_API_KEY>",
"EXA_API_KEY": "<EXA_API_KEY>",
"READER_FALLBACK_URL": "<READER_FALLBACK_URL>"
}
}
}
}
{
"servers": {
"search-memory-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"SEARCH_PROVIDERS": "<SEARCH_PROVIDERS>",
"CACHE_DB_PATH": "<CACHE_DB_PATH>",
"INGEST_ALLOWED_DIRS": "<INGEST_ALLOWED_DIRS>",
"SEARXNG_BASE_URL": "<SEARXNG_BASE_URL>",
"BRAVE_SEARCH_API_KEY": "<BRAVE_SEARCH_API_KEY>",
"TAVILY_API_KEY": "<TAVILY_API_KEY>",
"EXA_API_KEY": "<EXA_API_KEY>",
"READER_FALLBACK_URL": "<READER_FALLBACK_URL>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
SEARCH_PROVIDERSOptional | Comma-separated search provider order, for example duckduckgo,marginalia,bing |
CACHE_DB_PATHOptional | Path of the local SQLite database for cache, memory, and index |
INGEST_ALLOWED_DIRSOptional | Comma-separated directories whose files ingest_document may read; local file reading is off when unset |
SEARXNG_BASE_URLOptional | Base URL of a SearXNG instance with JSON output, used by the searxng provider |
BRAVE_SEARCH_API_KEYOptional, secret | Optional Brave Search API key; the brave provider then uses the official API instead of scraping |
TAVILY_API_KEYOptional, secret | Optional Tavily API key; adds the tavily provider with news-topic search and publish dates |
EXA_API_KEYOptional, secret | Optional Exa API key; adds the exa provider with neural (semantic) web search |
READER_FALLBACK_URLOptional | Optional reader service (for example https://markdown.new/) used when a page cannot be fetched directly; sends the page URL to that service |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 28 Oct 2026 |
| Last updated | 28 Oct 2026 |
| Registry name | io.github.kefyusuf/search-memory-mcp |
More search and web servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
