English | 中文
Give any AI Agent professional-grade deep research capabilities.
An MCP (Model Context Protocol) server that performs real-time deep research across 5 data sources, evaluates source credibility with the CRAAP framework, cross-verifies findings, and generates professional reports — all driven by affordable models like Kimi K2.5.
A full deep research report takes ~10 minutes and can be driven by Kimi K2.5 at ~$0.01/run.
This is a Node.js MCP server, NOT a Python package. Do NOT
git cloneorpip install.Step 1 — One-time setup (run in user's terminal):
npx harness-research-mcp setupThis launches an interactive wizard to configure API keys (stored in
~/.harness-research/.env).Step 2 — Register as MCP server in your agent's config file:
Claude Desktop / Cursor / Windsurf — edit MCP config JSON:
{ "mcpServers": { "harness-research": { "command": "npx", "args": ["-y", "harness-research-mcp"] } } }OpenCode — add to
~/.config/opencode/opencode.json:{ "mcp": { "harness-research": { "command": "npx", "args": ["-y", "harness-research-mcp"] } } }That's it. After registration, the agent gets 3 tools:
harness_research(full report),harness_search(quick search),harness_status(progress check).Do NOT clone this repo, build from source, or run
node/pythondirectly.npxhandles everything.Async workflow — no timeout issues:
harness_researchreturns atask_idimmediately (< 1 second). The research runs in the background (~10 minutes). You must pollharness_status(task_id)every 30–60 seconds until status is"completed"or"failed". This design means the default 60-second MCP timeout will NOT be a problem.If your MCP client has a configurable timeout, setting it to 1200 seconds (20 minutes) is still recommended as a safety margin:
{ "mcpServers": { "harness-research": { "command": "npx", "args": ["-y", "harness-research-mcp"], "timeout": 1200 } } }
Existing deep research tools (Perplexity Deep Research, ChatGPT Research, Gemini Deep Research, etc.) share fundamental flaws:
| Problem | Explanation |
|---|---|
| Rely on stale knowledge | They primarily draw from the LLM's training data, not real-time internet search. You may get data that's months or years out of date. |
| Opaque sourcing | Most tools don't show where information came from. Some cited URLs are hallucinated. |
| No source evaluation | A social media post and a government statistical report are treated equally. No mechanism to assess credibility. |
| Single search source | One search engine, narrow coverage. Academic papers, financial data, and government reports are unreachable. |
| Not integrable | Locked into specific platforms. Can't plug into your own AI Agent workflow. |
| Expensive | Require GPT-4, Claude, etc. Each research session costs $1-5+. |
| Feature | Harness Research | Perplexity / ChatGPT / Gemini |
|---|---|---|
| Data sources | 5 real-time search APIs (Tavily + Brave + arXiv + PubMed + Tushare) | Single search engine or model's internal knowledge |
| Data freshness | 100% real-time search — zero reliance on LLM training data | Mixed stale knowledge + limited search |
| Source evaluation | CRAAP framework with 5-dimension scoring + T0-T5 tier classification (530+ domain database) | None |
| Cross-verification | Automatic conflict detection + counterintuitive finding identification | None |
| Citations | Every reference tagged with source tier, credibility score, publication date | Simple URL list or no citations |
| LLM requirement | Kimi K2.5 works great (~$0.01/run) | GPT-4 / Claude ($1-5/run) |
| Output formats | HTML + DOCX + PDF + Markdown | Plain text |
| Integrability | Standard MCP protocol — works with any Agent | Locked to specific platform |
| Open source | Apache 2.0 | Proprietary |
Core principle: The LLM only "thinks" — it never "knows." All factual data comes from real-time search.
User: "Research the global AI chip market landscape in 2025"
│
▼
Step 1 ── Research Plan (LLM)
│ Generate chapter structure + search keywords
▼
Step 2 ── 5-Source Parallel Search (Code)
│ Tavily + Brave + arXiv + PubMed + Tushare
│ Dedup → cap at 50 results
▼
Step 3 ── CRAAP Source Evaluation (Code + LLM)
│ Code pre-filter: T5 eliminated, >3yr eliminated
│ LLM batch scoring: Relevance + Accuracy + Purpose
│ Weighted average → filter low-scoring sources
▼
Step 4 ── Cross-Verification (LLM)
│ Data triangulation + conflict detection + counterintuitive findings
▼
Step 5 ── Parallel Writing (LLM)
│ All chapters in parallel + executive summary
▼
Step 6 ── Render Output (Code)
│ HTML + DOCX + PDF (macOS) + Markdown
▼
Professional research report (~10 minutes)
npx harness-research-mcp setupThe interactive wizard will guide you through:
- Configuring search API keys (Tavily or Brave, at least one)
- Configuring an LLM API key (Kimi K2.5 recommended — cheapest option)
- Optional: Tushare (Chinese financial data), NCBI (PubMed academic search)
- Automatic API connectivity test
Copy the appropriate config for your Agent framework:
Claude Desktop / Cursor / Windsurf:
{
"mcpServers": {
"harness-research": {
"command": "npx",
"args": ["-y", "harness-research-mcp"]
}
}
}OpenClaw:
openclaw mcp set harness-research '{"command":"npx","args":["-y","harness-research-mcp"]}'OpenCode:
Just tell your Agent:
"Do a deep research on the global AI chip market landscape in 2025"
The Agent will automatically call harness_research and return the full report in ~10 minutes.
| Tool | Description | Duration |
|---|---|---|
harness_research |
Full deep research with professional report output | ~10 min |
harness_search |
Quick multi-source search, returns structured results | Seconds |
harness_status |
Check research task progress | Instant |
Harness Research does not rely on any LLM's historical knowledge. All information is fetched in real-time from the internet. This requires calling various search and data APIs.
| Key | Purpose | Required? | Get it | Cost |
|---|---|---|---|---|
| TAVILY_API_KEY | Advanced web search (deep scraping support) | Required (pick one) | tavily.com | Free 1000 calls/mo |
| BRAVE_API_KEY | Privacy-focused web search | Required (pick one) | brave.com/search/api | Free 2000 calls/mo |
| KIMI_API_KEY | LLM reasoning (planning, evaluation, writing) | Required (pick one) | platform.moonshot.cn | Very low cost |
| OPENROUTER_API_KEY | LLM reasoning (alternative to Kimi) | Required (pick one) | openrouter.ai | Per-model pricing |
| TUSHARE_TOKEN | Chinese A-share financial data | Optional | tushare.pro | Free basic tier |
| NCBI_API_KEY | PubMed academic paper search | Optional | ncbi.nlm.nih.gov | Free |
Minimum: 1 search key + 1 LLM key = 2 keys to get started.
- Cost: ~$0.01 per full research session (vs. GPT-4 at $1-5)
- Chinese support: Native Chinese language, no translation layer needed
- Context: 128K token window — handles large volumes of search results
- Reliability: 99.9%+ API availability
| Format | macOS | Windows / Linux | Notes |
|---|---|---|---|
| HTML | ✅ | ✅ | Professional layout, dark theme support |
| DOCX | ✅ | ✅ | Word document, ready to edit and share |
| ✅ | ❌ | Puppeteer-based, macOS only | |
| Markdown | ✅ | ✅ | Plain text, easy to post-process |
Every source is scored across 5 dimensions:
| Dimension | Weight | What It Measures |
|---|---|---|
| Currency | 15% | How recent is the publication? |
| Authority | 25% | Source tier: Government > Academic > Media > Blog |
| Relevance | 25% | How well does it match the research topic? |
| Accuracy | 20% | Is the data verifiable? Does it cite sources? |
| Purpose | 15% | Is the writing objective or biased? |
| Tier | Weight | Source Type | Examples |
|---|---|---|---|
| T0 | 1.2x | Raw government data APIs | World Bank API, Fed FRED, SEC EDGAR |
| T1 | 1.0x | Authoritative institutions | WHO, Nature, Science, government reports |
| T2 | 0.8x | Professional organizations | McKinsey, Gartner, Financial Times |
| T3 | 0.6x | Mainstream media | Reuters, Bloomberg, TechCrunch |
| T4 | 0.3x | General websites | Unclassified domains (default) |
| T5 | 0.15x | Social media | Twitter, Reddit (auto-eliminated) |
Built-in 530+ domain credibility database covering major governments, academia, media, and professional institutions worldwide.
npx harness-research-mcp doctor┌──────────────────────────────────────────┐
│ Claude / Cursor / OpenClaw / OpenCode │
│ (MCP Client) │
└────────────────┬─────────────────────────┘
│ stdio (MCP Protocol)
▼
┌──────────────────────────────────────────┐
│ harness-research-mcp (Node.js) │
│ │
│ Tools: │
│ harness_research — full deep research │
│ harness_search — quick multi-search │
│ harness_status — progress query │
│ │
│ 6-Step Pipeline: │
│ Plan → Search → CRAAP → Verify → │
│ Write → Render │
│ │
│ Pure Node.js. Zero Python dependency. │
└──────────────────────────────────────────┘
git clone https://github.com/Nimo1987/harness-research.git
cd harness-research
npm install
npm run buildApache 2.0