What does mcp-local-rag do?
It performs web searches and deep research using multiple search engines, extracts content from result pages, converts it to Markdown, and returns context to the language model for response generation.
@nkapila6
基本信息
"primitive" RAG-like web search model context protocol (MCP) server that runs locally. ✨ no APIs ✨
使用下面的配置,将此服务器添加到你的 MCP 客户端。
{
"mcpServers": {
"mcp-local-rag": {
"command": "uvx",
"args": [
"--python=3.10",
"--from",
"git+https://github.com/nkapila6/mcp-local-rag",
"mcp-local-rag"
]
}
}
}Search the web for a given query using DuckDuckGo. Returns context to the LLM with RAG-like similarity scoring to prioritize the most relevant results. This tool fetches web search results, scores them by semantic similarity to the query using text embeddings, and returns the top-ranked content as markdown text. Args: query (str): The search query. Use natural language questions or keywords. Example: "latest developments in quantum computing" num_results (int): Number of initial search results to fetch from DuckDuckGo. More results provide better coverage but increase processing time. Default: 10 top_k (int): Number of top-scored results to include in the final output. These are the most semantically relevant results after scoring. Default: 5 include_urls (bool): Whether to include source URLs in the results. If True, each result includes its URL for citation. Default: True Returns: Dict: A dictionary with a single key "content" containing the search results. The content is formatted as markdown text with the most relevant information from the top_k web pages. If include_urls is True, each section includes its source URL. Example: {"content": "# Result 1\n\nContent here...\n\nSource: https://example.com"}
Search on Google for a given query using ddgs. Give back context to the LLM with a RAG-like similarity sort. Args: query (str): The query to search for. num_results (int): Number of results to return. top_k (int): Use top "k" results for content. include_urls (bool): Whether to include URLs in the results. If True, the results will be a list of dictionaries with the following keys: - type: "text" - text: The content of the result - url: The URL of the result Returns: Dict of strings containing best search based on input query. Formatted in markdown.
Perform deep research across multiple search terms using specified search backends. This tool aggregates results from multiple searches across chosen engines, scores them by relevance, and returns the most relevant content with duplicates removed. Perfect for comprehensive research on a topic. Available backends: bing, brave, duckduckgo, google, grokipedia, mojeek, yandex, yahoo, wikipedia USAGE GUIDANCE FOR LLM: 1. Ask the user which backend(s) they prefer, OR 2. Choose appropriate backend(s) based on context: - ["duckduckgo"] - Privacy-focused, general search - ["google"] - Comprehensive results, best for technical queries - ["duckduckgo", "google"] - Maximum coverage (default) - ["wikipedia"] - Factual/encyclopedia content - ["bing", "google"] - Balanced commercial engines - Multiple backends for broader research coverage 3. For specific use cases, consider: - deep_research_google() - shortcut for Google-only - deep_research_ddgs() - shortcut for DuckDuckGo-only Args: search_terms (List[str]): List of search terms to research. Provide multiple related search queries for comprehensive coverage. Example: ["machine learning fundamentals", "neural networks", "deep learning best practices"] backends (List[str] | None): List of search backends to use. Defaults to ["duckduckgo", "google"]. Can include: bing, brave, duckduckgo, google, grokipedia, mojeek, yandex, yahoo, wikipedia. If None, uses default. num_results_per_term (int): Number of results to fetch per search term per backend. top_k_per_term (int): Number of top scored results to keep per search term per backend. include_urls (bool): Whether to include URLs in the results. Returns: Dict containing aggregated research results from all search terms and specified backends, with duplicates removed.
Perform deep research across multiple search terms using ONLY Google. Aggregates results from multiple Google searches, scores them by relevance, and returns the most relevant content with duplicates removed. Args: search_terms (List[str]): List of search terms to research. The LLM should provide multiple related search queries for comprehensive coverage. num_results_per_term (int): Number of results to fetch per search term. top_k_per_term (int): Number of top scored results to keep per search term. include_urls (bool): Whether to include URLs in the results. Returns: Dict containing aggregated research results from all search terms (Google only), with duplicates removed.
Perform deep research across multiple search terms using ONLY DuckDuckGo. Aggregates results from multiple DuckDuckGo searches, scores them by relevance, and returns the most relevant content with duplicates removed. Args: search_terms (List[str]): List of search terms to research. The LLM should provide multiple related search queries for comprehensive coverage. num_results_per_term (int): Number of results to fetch per search term. top_k_per_term (int): Number of top scored results to keep per search term. include_urls (bool): Whether to include URLs in the results. Returns: Dict containing aggregated research results from all search terms (DuckDuckGo only), with duplicates removed.
mcp-local-rag is a RAG-based web search and deep research MCP server that runs entirely locally, requiring no API keys. It integrates with 9+ search backends, performs semantic similarity ranking, and is intended for users who need private, local web research via an MCP-compatible client.
Install uv or Docker, then add the server configuration to your MCP client settings. For uvx, use the command uvx --python=3.10 --from git+https://github.com/nkapila6/mcp-local-rag mcp-local-rag. For Docker, run docker run --rm -i --init -e DOCKER_CONTAINER=true ghcr.io/nkapila6/mcp-local-rag:v1.0.2. The server exposes tools like deep_research, deep_research_google, deep_research_ddgs, rag_search_ddgs, and rag_search_google.
rag_search_ddgs and rag_search_google.It performs web searches and deep research using multiple search engines, extracts content from result pages, converts it to Markdown, and returns context to the language model for response generation.
No. All processing, including search and embedding generation, runs entirely locally with built-in models.
You can run it directly via `uvx` (requires `uv`) or using Docker (recommended). Both methods are documented with exact configuration JSON for your MCP client.
DuckDuckGo, Google, Bing, Brave, Wikipedia, Yahoo, Yandex, Mojeek, and Grokipedia.
Agent Skills are instructional folders that teach Claude how to best use mcp-local-rag’s tools. They cover smart tool selection, multi‑engine research, query formulation, and privacy‑aware searching. Load the skill folder (`skills/local-rag-search/`) in Claude Desktop’s Skills settings.
Person-owned, portable AI memory served over MCP. Your knowledge, preferences, and decisions — captured in one assistant, available in all of them.

The official Semantic-UI-React integration

AI agents start every session with amnesia — you re-explain the project, repeat your preferences, and correct the same mistakes over and over. PLUR gives them a memory that persists. Your agent's corrections, preference

Scento Perfume API is a free fragrance API and perfume notes database for developers and AI agents. Search 1,500+ perfumes and 400+ ingredients, compare scents, find similar perfumes, map scent families and build occasio

Serve your docs to AI agents over SSH and MCP. Agents use ls, cat, grep, find, and pipes against a virtual filesystem backed by your documentation. Identity-scoped access, governed writing with human approval, and portab
评论