A Model Context Protocol (MCP) server that provides advanced research capabilities through iterative search, analysis, and synthesis. This Docker image enables AI assistants to conduct comprehensive research by automatically refining queries, analyzing results, and generating detailed reports.
docker pull aml731/mcp-deep-research:latest
docker run -e TAVILY_API_KEY=your-api-key-here \
aml731/mcp-deep-research:latest
docker run -p 8000:8000 \
-e TAVILY_API_KEY=your-api-key-here \
-e MCP_TRANSPORT=http \
aml731/mcp-deep-research:latest
| Variable | Description |
|---|---|
TAVILY_API_KEY | Your Tavily API key (get one at tavily.com) |
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | http | Transport mode: stdio or http |
MCP_HTTP_HOST | 0.0.0.0 | HTTP server host (HTTP mode only) |
MCP_HTTP_PORT | 8000 | HTTP server port (HTTP mode only) |
| Variable | Default | Description |
|---|---|---|
DEFAULT_SEARCH_DEPTH | advanced | Search depth: basic or advanced |
MAX_SEARCH_RESULTS | 10 | Maximum results per search |
SEARCH_TIMEOUT | 30 | Search timeout in seconds |
| Variable | Default | Description |
|---|---|---|
DEFAULT_CONFIDENCE_THRESHOLD | 0.75 | Minimum confidence threshold (0.0-1.0) |
MAX_ITERATIONS | 3 | Maximum research iterations |
| Variable | Default | Description |
|---|---|---|
RATE_LIMIT_REQUESTS | 10 | Rate limit per minute |
CACHE_ENABLED | true | Enable result caching |
CACHE_TTL | 3600 | Cache time-to-live in seconds |
| Variable | Default | Description |
|---|---|---|
LOG_LEVEL | INFO | Logging level: DEBUG, INFO, WARNING, ERROR |
docker run \
-e TAVILY_API_KEY=tvly-xxxxxxxxxxxxx \
-e MCP_TRANSPORT=stdio \
aml731/mcp-deep-research:latest
docker run -d \
--name mcp-deep-research \
-p 8000:8000 \
-e TAVILY_API_KEY=tvly-xxxxxxxxxxxxx \
-e MCP_TRANSPORT=http \
-e MCP_HTTP_HOST=0.0.0.0 \
-e MCP_HTTP_PORT=8000 \
-e LOG_LEVEL=INFO \
aml731/mcp-deep-research:latest
docker run -d \
--name mcp-deep-research \
-p 8000:8000 \
-e TAVILY_API_KEY=tvly-xxxxxxxxxxxxx \
-e MCP_TRANSPORT=http \
-e DEFAULT_SEARCH_DEPTH=advanced \
-e MAX_SEARCH_RESULTS=15 \
-e MAX_ITERATIONS=5 \
-e CACHE_ENABLED=true \
-e CACHE_TTL=7200 \
-e LOG_LEVEL=DEBUG \
aml731/mcp-deep-research:latest
Create a docker-compose.yml file:
version: '3.8'
services:
mcp-deep-research:
image: aml731/mcp-deep-research:latest
container_name: mcp-deep-research
ports:
- "8000:8000"
environment:
# Required
TAVILY_API_KEY: ${TAVILY_API_KEY}
# Transport Configuration
MCP_TRANSPORT: http
MCP_HTTP_HOST: 0.0.0.0
MCP_HTTP_PORT: 8000
# Search Configuration
DEFAULT_SEARCH_DEPTH: advanced
MAX_SEARCH_RESULTS: 10
SEARCH_TIMEOUT: 30
# Research Configuration
DEFAULT_CONFIDENCE_THRESHOLD: 0.75
MAX_ITERATIONS: 3
# Performance Configuration
RATE_LIMIT_REQUESTS: 10
CACHE_ENABLED: true
CACHE_TTL: 3600
# Logging
LOG_LEVEL: INFO
restart: unless-stopped
healthcheck:
test: ["CMD", "python", "-c", "import mcp_deep_research"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
Create a .env file with your API key:
TAVILY_API_KEY=tvly-xxxxxxxxxxxxx
Run with Docker Compose:
docker-compose up -d
View logs:
docker-compose logs -f mcp-deep-research
Stop the service:
docker-compose down
The server provides the following tools via the Model Context Protocol:
researchConduct comprehensive research on a given topic with iterative refinement.
Parameters:
query (string, required): The research question or topicmax_iterations (integer, optional): Maximum number of research iterationssearch_depth (string, optional): Search depth - "basic" or "advanced"quick_searchPerform a quick search with basic analysis.
Parameters:
query (string, required): Search querymax_results (integer, optional): Maximum number of resultsanalyze_sourcesAnalyze the quality and complexity of search results.
Parameters:
urls (array, required): List of URLs to analyzeWhen running in HTTP mode, the following endpoints are available:
GET /sse - Server-Sent Events endpoint for bidirectional MCP communicationPOST /messages - Message endpoint for client requestsThe container includes a health check that verifies the Python module can be imported:
docker inspect --format='{{.State.Health.Status}}' mcp-deep-research
mcpuser, UID 1000)Check if the Tavily API key is set:
docker logs mcp-deep-research
Ensure port 8000 is properly mapped and MCP_TRANSPORT=http is set:
docker run -p 8000:8000 -e MCP_TRANSPORT=http -e TAVILY_API_KEY=your-key aml731/mcp-deep-research:latest
docker logs -f mcp-deep-research
docker run -it --entrypoint /bin/bash aml731/mcp-deep-research:latest
latest - Latest stable releasev0.1.0 - Specific version tagsGNU General Public License v3.0 (GPL-3.0) - see LICENSE for details.
Content type
Image
Digest
sha256:d855fde00…
Size
59.5 MB
Last updated
12 months ago
docker pull aml731/mcp-deep-research