Local Research MCP Server
A private, local research assistant that searches the web and scrapes content using DuckDuckGo.
Local Research MCP Server
A free, private research assistant for AI development environments that searches the web and scrapes content using DuckDuckGo and Python. This MCP server gives AI assistants the ability to access real-time information while keeping all processing local for complete privacy.
Compatible with:
- Claude Desktop - Anthropic's official desktop app
- Claude Code - Anthropic's CLI tool for developers
- Gemini CLI - Gemini's CLI tool
- Cline - VS Code extension for AI-powered coding
- Any MCP-compatible client
Features
- 🔍 Free Web Search: Uses DuckDuckGo's search API without requiring API keys
- 📄 Content Extraction: Intelligently extracts clean text from web pages
- 🔒 Privacy-First: All processing happens locally on your machine
- ⚡ Fast Integration: Works seamlessly with Claude Desktop via MCP
- 🛠️ Zero Dependencies: No external services or subscriptions required
Quick Start
Prerequisites
- Python 3.10 or higher
- One of the compatible AI environments:
- Claude Desktop, Claude Code, Google CLI, Cline, or other MCP client
- Basic command line knowledge
Installation
-
Clone this repository:
git clone https://github.com/Unlock-MCP/local-research-server.git cd local-research-server -
Set up the environment:
uv init uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
Install dependencies:
uv add "mcp[cli]" duckduckgo-search trafilatura -
Test the server:
python research_server.py
Configuration
Choose your AI environment:
Claude Desktop
Add this to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"local-researcher": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/local-research-server",
"run",
"python",
"research_server.py"
]
}
}
}
Claude Code
Add this to your CLAUDE.md file or use the CLI:
claude --mcp-server local-researcher="uv --directory /path/to/your/local-research-server run python research_server.py"
Google AI Studio / Gemini CLI
Configure via your MCP client settings or environment variables.
Cline (VS Code)
Add to your Cline MCP server configuration in VS Code settings.
Replace /path/to/your/local-research-server with the full path to this directory.
Usage
After configuration, restart your AI environment. Connection indicators vary by platform:
- Claude Desktop: Look for the plug icon (🔌)
- Claude Code: Server status shown in CLI output
- Other platforms: Check your MCP client's connection status
Ask your AI assistant research questions like:
- "What are the latest developments in AI research this week?"
- "Research current renewable energy trends in Europe"
- "Find recent cybersecurity threat reports"
Your AI assistant will automatically use the local server to fetch real-time information.
How It Works
The server implements a single MCP tool that:
- Searches the web using DuckDuckGo's free API
- Scrapes content from the top search results
- Extracts clean, readable text using Trafilatura
- Returns formatted content to Claude for analysis
All processing happens locally with no data sent to external services except for the public web searches.
Architecture
AI Client (Claude Desktop/Code/Gemini/Cline)
↓ (MCP Protocol)
Local Research Server
↓ (Search API)
DuckDuckGo Search
↓ (HTTP Requests)
Target Websites
↓ (Content Extraction)
Clean Text → AI Assistant
Configuration Options
The server accepts these parameters for the research tool:
query(string): The search query or research topicnum_results(int): Number of search results to process (default: 3)
Security Features
- Input Validation: Sanitizes search queries
- Rate Limiting: Polite delays between web requests
- Error Handling: Graceful failure handling
- Local Processing: No external data dependencies
Business Applications
This research server is ideal for:
- Content Creation: Research-backed article writing
- Market Analysis: Real-time competitor and industry research
- Due Diligence: Company and investment research
- Regulatory Monitoring: Tracking compliance requirements
Extending the Server
Consider these enhancements:
- Add RSS feed integration
- Implement search result caching
- Add domain filtering capabilities
- Include publication date extraction
- Add multiple search engine support
Troubleshooting
Common Issues
Server not connecting:
- Verify the absolute path in your AI client config
- Restart your AI environment completely
- Check that Python dependencies are installed
No search results:
- Verify internet connection
- Check DuckDuckGo service status
- Try different search queries
Content extraction failing:
- Some websites block scraping
- Try different search terms for varied sources
- Check the console output for specific errors
Contributing
We welcome contributions! Please see our Contributing Guide for details.
License
MIT License - see LICENSE for details.
Related Projects
- MCP Docs Server - Local documentation access
- Remote MCP Server - Enterprise database access
- UnlockMCP Website - MCP tutorials and resources
Support
Related Servers
YouTube Music MCP
Search and play tracks on YouTube Music via AI assistants.
12306-mcp
Search for train tickets on 12306, the official China Railway website.
Expert Registry MCP Server
An MCP server for expert discovery, registration, and context injection, utilizing vector and graph databases.
Slack Search
Search for messages and files within a Slack workspace using the Slack API.
Perplexity AI
An MCP server to interact with Perplexity AI's language models for search and conversational AI.
SerpApi MCP
SerpApi MCP Server for Google and other search engine results
Web Search MCP Server
Free web search using Google search results, no API key required.
Brave Search
An MCP server for the Brave Search API, providing both web and local search capabilities.
Dictionary-MCP
A dictionary server using the Merriam-Webster API to provide definitions, parts of speech, and pronunciations for words.
Meilisearch
Interact & query with Meilisearch (Full-text & semantic search API)