Cam10001110101/mcp-server-ollama-deep-researcher
If you are the rightful owner of mcp-server-ollama-deep-researcher and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Ollama Deep Researcher is a Model Context Protocol (MCP) server that provides deep research capabilities using local LLMs via Ollama.
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
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
.
├── manifest.json # DXT manifest (see MANIFEST.md for spec)
├── src/
│ ├── index.ts # MCP server entrypoint (Node.js, stdio transport)
│ └── assistant/ # Python research logic
│ └── run_research.py
├── README.md # This documentation
└── ...
Installation & Setup
-
Clone the repository and install dependencies:
git clone <your-repo-url> cd mcp-server-ollama-deep-researcher npm install -
Install Python dependencies for the assistant:
cd src/assistant pip install -r requirements.txt # or use pyproject.toml/uv if preferred -
Set required environment variables for web search APIs:
- For Tavily:
TAVILY_API_KEY - For Perplexity:
PERPLEXITY_API_KEY - For 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
- For Tavily:
-
Build the TypeScript server (if needed):
npm run build -
Run 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" }
- Use the
- Get research status:
- Use the
get_statustool
- Use the
- Configure research parameters:
- Use the
configuretool with any of:maxLoops,llmModel,searchApi
- Use the
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