This server enables in-depth research on topics using local LLMs via Ollama, integrated with web search capabilities.
Research Process: Perform deep research by generating search queries, gathering web information, summarizing results, and iteratively improving the summary through multiple cycles.
Customization: Configure research parameters including number of iterations (maxLoops), LLM model choice, and search API (Tavily or Perplexity).
Monitoring: Track status of ongoing research processes and integrate with LangSmith for detailed tracing and debugging.
Results & Integration: Receive final research summaries in markdown format with cited sources, stored as persistent MCP resources accessible via
research://{topic}URIs for reuse in conversations.Deployment: Supports standard Node.js/Python installation or Docker deployment.
Based on LangChain Ollama Deep Researcher, providing workflow orchestration for multi-step research tasks
Referenced as part of research workflow implementation, though listed as requiring additional validation and re-integration
Enables research capabilities using any local LLM hosted by Ollama, supporting models like deepseek-r1 and llama3.2
Retrieves web search results using Perplexity API for research queries as part of the iterative research process
Ollama Deep Researcher DXT Extension
Overview
Ollama Deep Researcher is a Desktop Extension (DXT) that enables advanced topic research using web search and LLM synthesis, powered by a local MCP server. It supports configurable research parameters, status tracking, and resource access, and is designed for seamless integration with the DXT ecosystem.
Research any topic using web search APIs (Tavily, Perplexity, Exa) and LLMs (Ollama, DeepSeek, etc.)
Configure max research loops, LLM model, and search API
Track status of ongoing research
Access research results as resources via MCP protocol
Related MCP server: MCP Ollama Server
Features
Implements the MCP protocol over stdio for local, secure operation
Defensive programming: error handling, timeouts, and validation
Logging and debugging via stderr
Compatible with DXT host environments
Directory Structure
Installation & Setup
Clone the repository and install dependencies:
git clone <your-repo-url> cd mcp-server-ollama-deep-researcher npm installInstall Python dependencies for the assistant:
cd src/assistant pip install -r requirements.txt # or use pyproject.toml/uv if preferredSet required environment variables for web search APIs:
For Tavily:
TAVILY_API_KEYFor Perplexity:
PERPLEXITY_API_KEYFor Exa:
EXA_API_KEY(Get yours at https://dashboard.exa.ai/api-keys)Example:
export TAVILY_API_KEY=your_tavily_key export PERPLEXITY_API_KEY=your_perplexity_key export EXA_API_KEY=your_exa_key
Build the TypeScript server (if needed):
npm run buildRun the extension locally for testing:
node dist/index.js # Or use the DXT host to load the extension per DXT documentation
Usage
Research a topic:
Use the
researchtool with{ "topic": "Your subject" }
Get research status:
Use the
get_statustool
Configure research parameters:
Use the
configuretool with any of:maxLoops,llmModel,searchApi
Manifest
See manifest.json for the full DXT manifest, including tool schemas and resource templates. Follows DXT MANIFEST.md.
Logging & Debugging
All server logs and errors are output to
stderrfor debugging.Research subprocesses are killed after 5 minutes to prevent hangs.
Invalid requests and configuration errors return clear, structured error messages.
Security & Best Practices
All tool schemas are validated before execution.
API keys are required for web search APIs and are never logged.
MCP protocol is used over stdio for local, secure communication.
Testing & Validation
Validate the extension by loading it in a DXT-compatible host.
Ensure all tool calls return valid, structured JSON responses.
Check that the manifest loads and the extension registers as a DXT.
Troubleshooting
Missing API key: Ensure
TAVILY_API_KEY,PERPLEXITY_API_KEY, orEXA_API_KEYis set in your environment depending on which search API you're using.Python errors: Check Python dependencies and logs in
stderr.Timeouts: Research subprocesses are limited to 5 minutes.
Search API Comparison
Tavily: Fast, comprehensive web search with raw content extraction
Perplexity: AI-powered search with natural language summaries and citations
Exa: Neural search engine optimized for semantic search with highlights