Harness Research MCP
Enables AI agents to perform professional-grade deep research by aggregating real-time data from multiple sources, evaluating source credibility, and generating comprehensive reports.
README
English | 中文
Harness Research MCP
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.
For AI Agents: How to install this tool
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 } } }
Why This Tool Exists
The Problem with Current "Deep Research" Tools
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+. |
How Harness Research Is Different
| 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.
The 6-Step Research Pipeline
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)
Quick Start
1. Setup (one-time)
npx harness-research-mcp setup
The 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
2. Register with Your AI Agent
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:
// ~/.config/opencode/opencode.json
{
"mcp": {
"harness-research": {
"command": "npx",
"args": ["-y", "harness-research-mcp"]
}
}
}
3. Use It
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.
Three MCP Tools
| 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 |
API Keys Explained
Why Do You Need These Keys?
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.
Why Kimi K2.5?
- 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
Output Formats
| 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 |
CRAAP Evaluation Framework
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? |
6-Tier Source Classification
| 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.
Diagnostics
npx harness-research-mcp doctor
Architecture
┌──────────────────────────────────────────┐
│ 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. │
└──────────────────────────────────────────┘
Development
git clone https://github.com/Nimo1987/harness-research.git
cd harness-research
npm install
npm run build
License
Apache 2.0
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.