Open-source research engine that extracts structured knowledge from any topic.
Feed it a question. Get back scored claims, entity graphs, and a synthesized report — not paragraphs of slop.
You ask an AI to research something. It hallucinates confidently or gives you a 2000-word essay that says nothing specific. No sources. No confidence scores. No way to verify.
BeHive fixes this. It goes out, searches real sources, extracts verifiable claims with confidence scores, and builds a knowledge graph — all through your existing AI (Claude, ChatGPT, Gemini).
No install needed. Add this to your Claude Desktop config and you're done:
File: ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"behive": {
"url": "https://api.behive.site/mcp",
"transport": "streamable-http"
}
}
}Restart Claude Desktop. Ask: "Research the EU AI Act enforcement timeline"
That's it. Claude calls BeHive automatically.
💡 What happens under the hood
You ask Claude → Claude calls BeHive MCP tool → BeHive scouts 70+ APIs
→ fetches 200+ URLs via stealth drones → extracts claims with scores
→ deduplicates → returns structured report to Claude
Cost: Free. The hosted MCP server is provided by the BeHive team.
Privacy: Queries are processed and discarded. No data retention.
- Go to chat.openai.com/gpts/editor
- Create a new GPT
- Under Actions → click Import from URL → paste:
https://api.behive.site/openapi.json - Name it "Deep Researcher" and save
Now ask your GPT: "Research quantum computing breakthroughs 2026"
Add to your MCP config (.cursor/mcp.json, ~/.claude/settings.json, etc.):
{
"mcpServers": {
"behive": {
"url": "https://api.behive.site/mcp",
"transport": "streamable-http"
}
}
}# Hermes — already has a built-in skill
hermes skill install behive-research
# OpenClaw — copy from integrations/
cp integrations/openclaw/SKILL.md ~/.openclaw/skills/behive.mdWant to run BeHive on your own machine? Three options:
pip install behive
export ANTHROPIC_API_KEY=*** # or OPENAI_API_KEY
behive research "NVIDIA GPU market 2026"Data is stored locally in ~/.behive/research.duckdb. No database setup needed.
git clone https://github.com/qa10devteam/behive && cd behive
echo "ANTHROPIC_API_KEY=***" > .env
docker compose up -d
# API → http://localhost:8091
# MCP → http://localhost:8090/mcppip install "behive[all]"
export BEHIVE_DB_URL=postgresql://user:pass@localhost:5432/behive
export ANTHROPIC_API_KEY=***
behive serveBeHive works with any LLM. You choose what runs each pipeline stage:
| Stage | What it does | Recommended model |
|---|---|---|
| scout | Query generation, source planning | Claude Haiku 4.5 / GPT-4.1-mini / local |
| harvest | Content triage, relevance filtering | Claude Haiku 4.5 / GPT-4.1-mini / local |
| process | Claim extraction, entity recognition | Claude Sonnet 4.6 / GPT-4.5 / Gemini 2.5 Flash |
| synth | Report synthesis, deduplication | Claude Opus 4.6 / GPT-4.5 / Gemini 2.5 Pro |
| falsifier | Cross-verification, bias detection | Claude Sonnet 5 / o4-mini |
behive config --preset budget # Haiku everywhere (~$0.30/mission)
behive config --preset balanced # Haiku scout + Sonnet synth (~$1.50)
behive config --preset deep # Opus synth + Falsifier (~$4.00)| Preset | Model String |
|---|---|
claude-haiku |
anthropic/claude-haiku-4-5-20251001 |
claude-sonnet |
anthropic/claude-sonnet-4-6 |
claude-opus |
anthropic/claude-opus-4-6-v1 |
claude-sonnet-5 |
anthropic/claude-sonnet-5 |
gpt-4.1-mini |
openai/gpt-4.1-mini |
gpt-4.5 |
openai/gpt-4.5-preview |
o4-mini |
openai/o4-mini |
gemini-flash |
google/gemini-2.5-flash |
gemini-pro |
google/gemini-2.5-pro |
llama-4 |
ollama/llama4-scout |
local |
openai/local-model (any OpenAI-compatible endpoint) |
export BEHIVE_MODEL=anthropic/claude-sonnet-4-6 # one model for everything
export BEHIVE_MODEL_SCOUT=ollama/llama4-scout # per-stage override
export BEHIVE_MODEL_SYNTH=anthropic/claude-opus-4-6-v1 # per-stage overridePriority: BEHIVE_MODEL_{STAGE} > BEHIVE_MODEL > config.yaml > defaults
Or pass any litellm-compatible model string directly.
The CLI reads ~/.behive_runtime.env for the current account. Set
BEHIVE_ENV_FILE to use a different explicit file. Existing environment values
win over that file. BeHive does not import credentials from Hermes auth files.
For a source checkout, graph support has its own dependency extra:
pip install -e '.[graph]'. Harvesting and processing extras are separate.
These local metadata changes have not been published to PyPI.
API providers requiring keys are skipped when configuration is missing; these
notices are diagnostics, not research evidence. LEX also requires its contracted
LEX_API_BASE endpoint: BeHive does not query the SIP login portal as an API.
BYOK Discord notifications are off by default. To enable them, explicitly set
BEHIVE_BYOK_NOTIFICATIONS=1 and supply the bot credentials and destination in
the environment; no Hermes credential file is read.
No benchmark table is published here without a reproducible run receipt. Claim counts, runtime and scores vary with the topic, sources, configured model, provider availability and pipeline options. Quality scores are internal ranking signals, not calibrated probabilities or a guarantee of factual correctness.
The repository contains regression tests for provider configuration, source admission, entity handling and deterministic synthesis. PostgreSQL persistence, public-provider checks and browser tests must be reported separately from controlled-provider unit tests. Never run database-writing tests against a shared research database: use a disposable cluster and retain the raw results.
BeHive's API registry contains 83 provider entries. Registered does not mean configured or available: some providers require credentials or contracts, and public endpoints can fail or return no relevant results.
| Category | Examples | Method |
|---|---|---|
| Web search | DuckDuckGo, Brave, SearXNG | Multi-backend fallthrough |
| Academic | arXiv, Semantic Scholar, PubMed | Direct API |
| News | Google News RSS, NewsAPI, GDELT | Real-time feeds |
| Government | EU Open Data, USPTO, SEC EDGAR | Registry APIs |
| Code | GitHub, GitLab, npm, PyPI | Package ecosystems |
| Financial | Yahoo Finance, FRED, ECB | Market data |
| Social | Reddit, HN (via Algolia), X/Twitter | Community signals |
Stealth layer: 8-layer drone architecture bypasses Cloudflare, DataDome, Akamai, PerimeterX. Rotating fingerprints, browser TLS profiles, residential proxy support.
┌─────────────────────────────────────────────────────────────┐
│ BeHive Pipeline │
└─────────────────────────────────────────────────────────────┘
│
┌───────────┬─────────────┼─────────────┬───────────┐
▼ ▼ ▼ ▼ ▼
┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐ ┌────────┐
│ SCOUT │ │HARVEST │ │ PROCESS │ │ SYNTH │ │ GRAPH │
│ │ │ │ │ │ │ │ │ │
│ Queen │ │Parallel│ │ Dual- │ │ Report │ │ Neo4j │
│ plans │ │ fetch │ │ model │ │ synth │ │ build │
│ 200+ │ │ drones │ │ extract │ │ dedupe │ │ entity │
│ tasks │ │ 70 APIs│ │ + score │ │ FUIR │ │ link │
└────────┘ └────────┘ └──────────┘ └────────┘ └────────┘
Key design: The Queen plans all research tasks BEFORE any scout leaves. This means parallel execution, no redundant searches, and smart gap detection.
# Start a research mission
curl -X POST http://localhost:8091/research \
-H "Content-Type: application/json" \
-d '{"topic": "quantum computing 2026", "depth": 3}'
# Check status
curl http://localhost:8091/research/{mission_id}
# Get report
curl http://localhost:8091/research/{mission_id}/report
# Search knowledge base
curl "http://localhost:8091/search?q=quantum+supremacy&limit=20"| Tool | Description |
|---|---|
research_topic |
Start deep research on any topic |
mission_status |
Check progress of a running mission |
get_report |
Retrieve the final synthesized report |
search_knowledge |
Query across all previous research |
list_missions |
List recent research missions |
from behive import BeHiveClient
client = BeHiveClient() # auto-detects local server
# Start research
mission = client.research("EU AI Act penalties", depth=3)
# Wait and get results
report = mission.wait()
print(f"Found {len(report.claims)} claims, avg quality: {report.quality:.2f}")| Feature | BeHive | GPT-Researcher | Tavily | Perplexity |
|---|---|---|---|---|
| Structured claims | ✅ JSON with scores | ❌ Text only | ❌ Snippets | ❌ Text |
| Knowledge graph | ✅ Neo4j entities | ❌ | ❌ | ❌ |
| Self-hosted | ✅ MIT | ✅ | ❌ SaaS only | ❌ SaaS only |
| MCP native | ✅ | ❌ | ❌ | ❌ |
| Quality scoring | ✅ 5-dimension | ❌ | ❌ | ❌ |
| Multi-source | 70+ APIs | ~5 | 1 (Tavily) | Internal |
| Cost | Free + your LLM | Free + your LLM | $50-500/mo | $20/mo |
| Falsifier | ✅ Cross-verify | ❌ | ❌ | ❌ |
| Platform | Method | Difficulty |
|---|---|---|
| Claude Desktop | MCP (add URL) | 10 seconds |
| ChatGPT | Custom GPT (import URL) | 30 seconds |
| Cursor / Windsurf | MCP config | 10 seconds |
| Claude Code | MCP config | 10 seconds |
| Hermes Agent | Built-in skill | 1 command |
| OpenClaw | Skill file | 1 file copy |
| n8n | Community node | Install in UI |
See CONTRIBUTING.md. PRs welcome.
git clone https://github.com/qa10devteam/behive
cd behive
pip install -e ".[dev]"
pytestMIT — use it however you want. Star ⭐ if it helps.
