Skip to main content
Glama
Unlock-MCP

Local Research MCP Server

by Unlock-MCP
README.md
# 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

1. **Clone this repository:**
   ```bash
   git clone https://github.com/Unlock-MCP/local-research-server.git
   cd local-research-server
   ```

2. **Set up the environment:**
   ```bash
   uv init
   uv venv
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate
   ```

3. **Install dependencies:**
   ```bash
   uv add "mcp[cli]" duckduckgo-search trafilatura
   ```

4. **Test the server:**
   ```bash
   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`

```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:
```bash
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:

1. **Searches** the web using DuckDuckGo's free API
2. **Scrapes** content from the top search results
3. **Extracts** clean, readable text using Trafilatura
4. **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 topic
- `num_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](CONTRIBUTING.md) for details.

## License

MIT License - see [LICENSE](LICENSE) for details.

## Related Projects

- [MCP Docs Server](https://github.com/Unlock-MCP/mcp-docs-server) - Local documentation access
- [Remote MCP Server](https://github.com/Unlock-MCP/remote-mcp-server) - Enterprise database access
- [UnlockMCP Website](https://unlockmcp.com) - MCP tutorials and resources

## Support

- [Tutorial Guide](https://unlockmcp.com/guides/build-local-research-mcp-server)
- [MCP Documentation](https://unlockmcp.com/guides/getting-started-mcp)
- [Issue Tracker](https://github.com/Unlock-MCP/local-research-server/issues)