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.
记忆与知识 分类下的更多 MCP 服务器
MemoryMesh
CheMiguel23A knowledge graph server that uses the Model Context Protocol (MCP) to provide structured memory persistence for AI models.
Obsidian MCP Server
cyanheadsRead, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP. STDIO or Streamable HTTP.
MCP Apple Notes
RafalWilinskiTalk with your notes in Claude. RAG over your Apple Notes using Model Context Protocol.
Obsidian MCP Server
StevenStavrakisA simple MCP server for Obsidian
Anytype MCP Server
anyprotoAn MCP server enabling AI assistants to interact with Anytype - your encrypted, local and collaborative wiki - to organize objects, lists, and more through natural language.
评论