mcp-local-rag
@nkapila6
mcp-local-rag について
"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"
]
}
}
}ツール
5Search 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.
概要
What is mcp-local-rag?
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.
How to use mcp-local-rag?
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.
Key features of mcp-local-rag
- Multi-engine deep research across 9+ search backends.
- Semantic similarity ranking using embeddings from Google's MediaPipe Text Embedder.
- No API keys required – all processing runs locally.
- Privacy-focused engines (DuckDuckGo, Brave) are supported.
- Customizable result limits and backend selection per query.
- Quick single searches via
rag_search_ddgsandrag_search_google.
Use cases of mcp-local-rag
- Comprehensive multi-perspective research on complex topics.
- Technical deep dives using Google's search index for documentation.
- Privacy-aware web searches without tracking or external services.
- Factual verification by cross-referencing Wikipedia and other authoritative sources.
- Quick web lookups integrated into chat workflows (e.g., Claude Desktop).
FAQ from mcp-local-rag
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.
Does mcp-local-rag require any API keys?
No. All processing, including search and embedding generation, runs entirely locally with built-in models.
How can I install mcp-local-rag?
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.
What search engines are supported?
DuckDuckGo, Google, Bing, Brave, Wikipedia, Yahoo, Yandex, Mojeek, and Grokipedia.
What are Agent Skills and how do I use them?
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.
「メモリとナレッジ」の他のコンテンツ
Notion MCP Integration
danhilseA simple MCP integration that allows Claude to read and manage a personal Notion todo list
Solomd
zhitongblogA markdown editor — and the bridge to your LLM. Local-first, MIT, ~15 MB. Bundled MCP server lets Claude Code / Codex / Cursor drive your vault directly. 14 AI providers BYOK.
Jupyter Notebook MCP Server (for Cursor)
jbenoModel Context Protocol (MCP) server designed to allow AI agents within Cursor to interact with Jupyter Notebook (.ipynb) files
🧠 Ultimate MCP Server
DicklesworthstoneComprehensive MCP server exposing dozens of capabilities to AI agents: multi-provider LLM delegation, browser automation, document processing, vector ops, and cognitive memory systems
MCP server for Obsidian
MarkusPfundsteinMCP server that interacts with Obsidian via the Obsidian rest API community plugin
コメント